2016-02-11 36 views
0

我有UILabel一個子類,看起來像這樣:UIGestureRecognizer中的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") 
    } 
} 

longPressGestureRecognizer永遠不會被調用。難道我做錯了什麼?

回答

6

默認userInteractionEnabledUILabels上被禁用,所以您必須在添加手勢識別器時手動啓用它。

確保您設置self.userInteractionEnabled = true

+0

我認爲這是很好的提'userInteractionEnabled'是'默認爲'UILabel' FALSE'。 – Eendje

+0

是的,工作,我不能相信我忘了;) – Daniel