[英]Swift 5 unable to add action to custom button(addTarget issues in AVPlayerViewController)
我已經嘗試了所有教程,但始終無法以編程方式向按鈕添加操作。
我嘗試將功能添加到viewdidload和viewdidappear,但是它不起作用。
class videoPlayer: AVPlayerViewController {
// PROPERTIES
let button = UIButton()
.
.
.
override func viewDidLoad() {
super.viewDidLoad()
print("video controller here!")
//Play the Video
let url = Bundle.main.path(forResource: "v1", ofType: "mp4")!
let player = AVPlayer(url: URL(fileURLWithPath: url))
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
playerViewController.showsPlaybackControls = false
}
//ADDING CUSTOM UI
button.setTitle("TEST", for: UIControl.State.normal)
button.backgroundColor = UIColor.red
button.sizeToFit()
button.addTarget(self, action: #selector(self.buttonAction(sender: )), for: .touchUpInside)
playerViewController.contentOverlayView?.addSubview(button)
}
// MARK :- Functions
@objc func buttonAction(sender :UIButton) {
print("Button tapped")
}
.
.
.
}
左上角確實會出現一個紅色按鈕,但是單擊時什么也沒有發生。
嘗試像這樣設置框架
button.frame = CGRect(x:20,y:20,width:50,height:50)
我發現了問題。 在復制一些代碼時,我沒有意識到我正在創建一個新的avplayercontroller。 而是設置self.player =播放器起作用了!
基本上,按鈕正在顯示,但是它們的邊界矩形在新創建的avplayercontroller()下。 在avplayercontrolview中創建avplayercontroller對我來說是如此愚蠢。
let videoURL = Bundle.main.path(forResource: "v1", ofType: "mp4")!
let player = AVPlayer(url: URL(fileURLWithPath: videoURL))
self.player = player
self.showsPlaybackControls = false
self.player?.play()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.