繁体   English   中英

Swift 5无法向自定义按钮添加操作(AVPlayerViewController中的addTarget问题)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM