2010-07-31 161 views
3

我試圖找到一種很好的方法,使其按照與iBooks相同的方式顯示/隱藏我的菜單。我設置了UITapGestureRecognizer來做到這一點,但不幸的是,它意味着屏幕上沒有任何按鈕可以工作。我知道我可以使用使用UITapGestureRecognizer顯示/隱藏菜單

tapRecognizer.cancelsTouchesInView = NO; 

爲了讓觸摸穿過去,但隨後的過程中,雙方的事情發生,我無法取消菜單顯示/隱藏。

有沒有辦法讓我停止在某些按鈕或操作上發生UITapGestureRecognizer?還是有更好的方式來做這個一般?

非常感謝您的幫助!

:-Joe

回答

5

如果有人需要一些代碼來理解Joe的解決方案,則應首先實現UIGestureRecognizerDelegate協議(即@interface YourViewController : UIViewController <UIGestureRecognizerDelegate>)。

在實現UIGestureRecognizerDelegate協議的類中,必須實現- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch。在那裏,你可以檢查touch.view是否是一個按鈕。在我的實施中,我只使用了return !([touch.view isKindOfClass:[UIButton class]]);,但如果您有其他觸摸功能組件,而您不想觸發您的輕觸識別器,則可能需要擴展此功能。

3

我已經解決了它(或其他人解決了這個問題對我來說),所以我想我會與大家分享:NO從委託方法 gestureRecognizer

返回:如果touch.view是您的其中一個按鈕,應該接收觸摸: 。

+0

太棒了,感謝您分享您的解決方案!我有同樣的問題。 – 2010-10-22 16:18:33