【问题标题】:How to add a tap gesture to multiple UIViewControllers如何向多个 UIViewControllers 添加点击手势
【发布时间】:2017-08-13 21:03:18
【问题描述】:

当用户在 Apple TV 遥控器上点按两次时,我想打印一条消息。我让它在单个 UIViewController 中工作,但我想重用我的代码,以便它可以在多个视图中工作。

代码“有效”是因为应用程序运行时没有任何问题。但是该消息永远不会显示在控制台中。我正在使用带有最新 Xcode 8.3.3 的 Swift 3。可能是什么问题?

UIViewController的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    _ = TapHandler(controller: self)

}

TapHandler 类的代码

class TapHandler {

    private var view : UIView?

    required init(controller : UIViewController) {

        self.view = controller.view

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.message))
        tapGesture.numberOfTapsRequired = 2
        self.view!.addGestureRecognizer(tapGesture)
        self.view!.isUserInteractionEnabled = true

    }

    @objc func message() {
        print("Hey there!")
    }

}

【问题讨论】:

    标签: swift uicollectionview tvos uitapgesturerecognizer


    【解决方案1】:

    您的 TapHandler 刚刚发布。试试这个:

    var tapHandler:TapHandler? = nil
    override func viewDidLoad() {
        super.viewDidLoad()
    
        tapHandler = TapHandler(controller: self)
    
    }
    

    我已经测试了代码并且正在运行。

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多