簡體   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