2012-03-07 17 views
7

私はスライドメニュー(Facebook/Twitterアプリのようなもの)を作成しようとしていますが、私のバージョンではこの効果のためにパンのジェスチャーがうまく使用されています。クラスは「SlideMenu」と呼ばれます。パンのジェスチャーがUISliderと干渉する

私は問題がパンジェスチャーはを妨げるように見えるということです

などUISliders、UIButtons、として、私のViewControllerでSlideMenuをインスタンス化し、それにサブビューとしてUI要素の束を追加しています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クラスと私のViewControllerに追加しようとしたが、ないサイコロ。これはどこに行くの?どの代理人を設定する必要がありますか?ありがとうございました

答えて

9

基本的に、ジェスチャ認識機能を処理しているコントローラーまたはビューのいずれにもあります。ジェスチャレコグナイザを作成すると、デリゲートをオブジェクト(おそらくビューコントローラ)に設定し、このオブジェクトにUIGestureRecognizerDelegateを実装させることができます。代理コールバックの1つはgestureRecognizer:shouldReceiveTouchです。したがって、上に配置したコードをオブジェクトの(View Controllerの)実装にコピーするだけで済みます。

+1

ありがとうございました。私が欠けていた細部は、ジェスチャーの代議員を自己に設定することでした。すべて今良い! – user339946

+0

グレートアンサー!!、マイナス – l0gg3r

+0

私のために働いています。私は今、パンニングで呼び出されるべき私のメソッドは呼び出されていません。どのように私はこのメソッドを呼び出すことができますか? – Hassy