2012-03-07 97 views
7

我想創建一個滑動菜單(有點像在Facebook/Twitter應用程序中),我的版本成功使用泛手勢來達到此效果。這個類被稱爲「SlideMenu」。泛手勢干擾UISlider

我實例化一個SlideMenu在我的ViewController,然後加入一些UI元素作爲其子視圖,如UISliders,UIButtons等

的問題是,平移手勢,似乎干擾UISlider會滑動,但會在很短的距離後停下來。我在答案中找到了一段代碼(Gesture problem: UISwipeGestureRecognizer + UISlider),但我不確定如何實現它,或者它是否適用於我的設計。

的代碼是這樣的:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    if ([touch.view isKindOfClass:[UISlider class]]) { 
     // prevent recognizing touches on the slider 
     return NO; 
    } 
    return YES; 
} 

我試着將它添加到我的SliderMenu類和我的視圖控制器,但沒有骰子。這個去哪了?我需要設置什麼樣的代表(如果有的話)?謝謝

回答

9

基本上,在哪個控制器或視圖中處理手勢識別器。在創建手勢識別器時,可以將其委託設置爲某個對象(可能是您的視圖控制器),並使該對象實現UIGestureRecognizerDelegate。其中一個代表回叫是gestureRecognizer:shouldReceiveTouch,因此您只需將上面放置的代碼複製到對象的(視圖控制器)實現中。

+1

謝謝。我錯過的細節是將手勢的代表設置爲自我。現在一切都好! – user339946 2012-03-08 05:19:15

+0

偉大的答案!!,微型 – l0gg3r 2014-02-17 14:27:11

+0

爲我工作。我但現在我的方法,應該被稱爲平移不被稱爲。我怎樣才能調用這個方法? – Hassy 2014-06-26 11:57:04