Ios 未调用UILabel子类中的UIGestureRecognitor
我有一个子类Ios 未调用UILabel子类中的UIGestureRecognitor,ios,swift,uigesturerecognizer,Ios,Swift,Uigesturerecognizer,我有一个子类UILabel,看起来像这样: class GestureLabel: UILabel { override init(frame: CGRect) { super.init(frame: frame) initialize() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) initialize(
UILabel
,看起来像这样:
class GestureLabel: UILabel {
override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
func initialize() {
self.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: Selector("longPressGestureRecognizer:")))
}
deinit {
gestureRecognizers?.removeAll()
}
func longPressGestureRecognizer(sender: AnyObject) {
print("this is never called")
}
}
但是永远不会调用
LongPressGestureRecognitor
。我做错什么了吗?默认情况下,UILabels
上禁用了userInteractionEnabled
,因此在添加手势识别器时必须手动启用它
确保默认情况下,
UILabels
上禁用了userInteractionEnabled
,因此在添加手势识别器时必须手动启用它
请确保您将
self.userInteractionEnabled=true
我认为最好将userInteractionEnabled
默认设置为false
,以便UILabel
。是的,这样做有效,我不敢相信我忘记了这一点;)我认为最好提及UILabel
默认情况下userInteractionEnabled
是false
。是的,这很有效,我不敢相信我忘记了;)