我有一個UIGestureRecognizer
,它連接到UILabel
,當它在晚些時候被顯示出來時,會在屏幕外顯示。進入視圖後,輕擊手勢識別器不起作用。如果在視圖中呈現,它工作正常。UIGestureRecognizer呈現在屏幕外
任何想法,爲什麼這不起作用?我該如何解決它?
我有一個UIGestureRecognizer
,它連接到UILabel
,當它在晚些時候被顯示出來時,會在屏幕外顯示。進入視圖後,輕擊手勢識別器不起作用。如果在視圖中呈現,它工作正常。UIGestureRecognizer呈現在屏幕外
任何想法,爲什麼這不起作用?我該如何解決它?
子類UILabel
和實施hitTest:withEvent:
解決
我嚴重懷疑它與屏幕上的「渲染」有關(以及你的意思是什麼)。在任何情況下,我建議當標籤被帶到您驗證標籤被啓用了屏幕,然後做這樣的事情:
NSArray *grs = label.gestureRecognizers;
for(UIGestureRecognizer *gr in grs) {
NSLog(@"Recognizer: %@ enabled=%d state=%d del=%@", NSStringFromClass[gr class]), gr.enabled, gr.state, gr.delegate);
}
比較從離屏幕與屏幕上的結果,這將是有趣。有些事情正在發生,只需要找出哪些屬性是不同的。沒辦法獲得目標/動作對的列表。
您是否嘗試過加入識別標籤被帶入視圖後的問題? – thegrinner 2012-08-13 20:28:49
將標籤帶入視圖後是否有其他(透明)視圖覆蓋/重疊標籤? – mAu 2012-08-13 20:33:09
我通過繼承UILabel並實現hitTest:withEvent解決了這個問題: – 2012-09-04 16:22:55