在pod 'Player'
应用中使用iOS 9.0
播放视频。我已经将Player
类子类化为添加UIButton叠加层以关闭窗口。
看起来很好,并且在点按时突出显示动画,但在内部触摸时不会调用closeTapped
。
import UIKit
import Player
class PlayerViewController: Player, PlayerDelegate {
func install() {
view.frame = presentor.view.bounds
presentor.addChildViewController(self)
presentor.view.addSubview(view)
didMove(toParentViewController: presentor)
let closeImage = UIImage(named: "close")!
let closeButton = UIButton(type: .custom)
view.addSubview(closeButton)
closeButton.setImage(closeImage, for: .normal)
closeButton.autoPinEdge(toSuperviewEdge: .top, withInset: 25)
closeButton.autoPinEdge(toSuperviewEdge: .right, withInset: 15)
closeButton.autoSetDimensions(to: CGSize(width: 50, height: 50))
closeButton.addGestureRecognizer(UITapGestureRecognizer())
closeButton.addTarget(self, action: #selector(closeTapped), for: .touchUpInside)
}
func closeTapped() {
logger.debug("Player close tapped")
}
}
我也试过closeTapped(sender: Any?)
,没有帮助。
为什么closeTapped
没有被调用?
答案 0 :(得分:1)
您无需在按钮上添加TapGestureRecognizer。对于swift 3.0,您可以这样做:
button.addTarget(self, action: #selector(closeTapped(sender:)), for: .touchUpInside)
func closeTapped(sender: UIButton) {
}
答案 1 :(得分:0)
我认为按钮顶部添加了UITapGestureRecognizer()。它本身有一个#selector。所以你的按钮默认.touchUpInside控制器没有调用。
尝试评论
// closeButton.addGestureRecognizer(UITapGestureRecognizer())
这一行。
让我知道这有用与否。