对于那些像我一样苦苦挣扎的人,这里有一个潜在的解决方案。
不知道有没有更好的解决办法。如果有,请分享。
我需要一个自定义按钮来制作完全相同的 MPVolumeView 路由按钮。所以我可以实现掩盖原始按钮的相同效果和功能。
import UIKit
import MediaPlayer
class SelectAudioDeviceViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let avView = myView(frame: CGRect(x: 0, y: 0, width: 150, height: 50))
let button = UIButton(frame: CGRect(x: 50, y: 150, width: 150, height: 50))
avView.showsRouteButton = true
avView.showsVolumeSlider = false
avView.setRouteButtonImage(nil, for: .normal)
button.backgroundColor = UIColor.gray
button.setTitle("BLABLA", for: .normal)
button.addSubview(avView)
self.view.addSubview(button)
}
}
class myView: MPVolumeView {
override func routeButtonRect(forBounds bounds: CGRect) -> CGRect {
let newBounds = CGRect(x: 0, y: 0, width: 150, height: 50)
return newBounds
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你