ios - 在 Swift 中扩展 UIGestureRecognizer

标签 ios swift uigesturerecognizer

我正在尝试在 Swift 中扩展 UIGestureRecognizer,我希望所有手势都受此影响。

如果我愿意。

 extension UIPanGestureRecognizer {

    public override var state: UIGestureRecognizerState {

     get {

        return self.state

     }

     set(newState) {

        self.handleStateChange(newState)

     }

   }
}

它仅在我执行 a 但仅适用于 PanLongPress 或我想要影响的任何手势时有效。我做不到。如果我全部都这样做,那么它会返回错误。

'Property does not override any property from its superclass'
'Getter for 'state' with Objective-C selector 'state' conflicts with method 'state()' with the same Objective-C selector.

如果我删除 override 它只会返回底部错误。我正在 Swift 中寻找答案。

最佳答案

听起来你想要的是一个子类。子类可以覆盖其父类(super class)的属性。

class MyPanGestureRecognizer: UIPanGestureRecognizer {
    override var state: UIGestureRecognizerState {
        get {
            return self.state
        }

        set(newState) {
            print(newState)
        }
    }
}

关于ios - 在 Swift 中扩展 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757030/

相关文章:

swift - 将可选值表达式转换为 bool 值

ios - 来自轻弹 Action 和 UIPanGestureRecognizer 的意外结果

swift - 使用 anchor 修改平滑曲线

objective-c - 如何从 iOS 应用程序发布到 Facebook 和 Twitter 墙

iphone - subview 内的 touchesMoved 检测

ios - WKWebView reload() 无法刷新当前页面

ios - UILongPressGestureRecognizer 未调用其目标方法

ios - UIPageViewController 的 viewController subview 动画转换

ios - 如何使用 SceneKit 实现 3D 指南针

ios - UICollectionViewCell 中的文本大小未调整