UIPanGestureRecognizer在没有指定类型的情况下不起作用

时间:2017-04-22 09:58:18

标签: ios swift uigesturerecognizer uipangesturerecognizer

我已经创建了我的自定义视图:

class CircleToggleView: UIView {

lazy var panGesture: UIPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(panHandler))

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    initializeView()
}

override init(frame: CGRect) {
    super.init(frame: frame)
    initializeView()
}

override func layoutSubviews() {
    layer.cornerRadius = bounds.width / 2
}

private func initializeView() {
    self.addGestureRecognizer(panGesture)
}

func panHandler() {
    print("pan")
}

}

没什么好看的,只是打印" pan"在每个泛手势上。一切正常,但如果我改变第一行,那么有趣的是:

lazy var panGesture: UIPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(panHandler))

到此:

lazy var panGesture = UIPanGestureRecognizer(target: self, action: #selector(panHandler))

处理程序不再被调用。我无法理解为什么,任何人都能解释我的意思吗?为什么我必须明确声明类型?

0 个答案:

没有答案