swift - 在 swift 中使用 UIPanGestureRecognizer 重载 gestureRecognizerShouldBegin

标签 swift overloading uipangesturerecognizer

我有一个平移手势,我需要检查手势应该何时开始。在 objective-C 中你可以使用

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

并且可以用 UIPanGestureRecognizer 重载

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer

但很快

override func gestureRecognizerShouldBegin(gestureRecognizer: UIPanGestureRecognizer) -> Bool {

它不起作用并返回

使用选择器 'gestureRecognizerShouldBegin:' 的覆盖方法具有不兼容的类型 '(UIPanGestureRecognizer) -> Bool'

如何在 swift 中重载此方法?

最佳答案

你不需要重载这个方法,你可以这样做:

override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let panGesture = gestureRecognizer as? UIPanGestureRecognizer {
        return ...
    }
    else {
        return ...
    }
}

关于swift - 在 swift 中使用 UIPanGestureRecognizer 重载 gestureRecognizerShouldBegin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092090/

相关文章:

swift - 动态 NSTabViewItem 约束

c++ - 函数重载和模板推导优先级

javascript - 看不懂这个 Javascript 函数(函数重载)

ios - Xamarin iOS - 具有速度的 UIView 动画

swift - 在 nslayout 约束上使用 uipangesture

swift - 如何在 NSUserdefaults 中快速保存和读取数组数组?

带有包管理器的 ubuntu 上的 Swift 2.2

ios - 使用 Codable 与 Swift 归档

c++ - 函数重载如何与 double 和 float 一起工作