【问题标题】:Using UIGestureRecognizer in Swift在 Swift 中使用 UIGestureRecognizer
【发布时间】:2015-03-27 18:26:56
【问题描述】:

我正在尝试将UIButtonUIGestureRecognizer 子类化,以向按钮添加不同的目标,具体取决于拖动移动的初始轴。我已经做到了:

class restrictedDragButton: UIButton {
    override func gestureRecognizerShouldBegin(gestureRecognizer: UIPanGestureRecognizer) -> Bool {
        let translation = gestureRecognizer.translationInView(self)
        if abs(translation.y) > abs(translation.x) {
            return true
        } else {
            return false
        }
    }
}

这给了我错误Overriding method with selector 'gestureRecognizerShouldBegin:' has incompatible type '(UIPanGestureRecognizer) -> Bool'。我已将委托添加到我的视图控制器中,所以我不确定还能做什么。

最后,我想说的是:

if myButton.gestureRecognizerShouldBegin() {  // returns vertical
    myButton.addTarget(...)  // vertical drag selector
} else {
    myButton.addTarget(...)  // horizontal drag selector
}

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: ios swift uikit


    【解决方案1】:
    override func gestureRecognizerShouldBegin(gestureRecognizer: UIPanGestureRecognizer) -> Bool
    

    应该是

    override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool
    

    所以UIGestureRecognizer,而不是UIPanGestureRecognizer。您可以在the docs 中找到有关该方法的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多