4

現在、プロジェクトで SWRevealViewController クラスを使用しています。基本機能では、ナビゲーション バーのボタンを押して正面図を切り替えることができます。しかし、ビュー全体にジェスチャーを追加したいです。

このコードを追加すると、ボタンで機能します。

[self.startTestButton addGestureRecognizer:self.revealViewController.panGestureRecognizer];

しかし、それは 1 つの UI 要素に対してのみ機能します。そのため、たとえば、このジェスチャに他の UI 要素を追加することはできません。

以下のコードは、panGestureRecognizer メソッドがどのように記述されているかを示しています。

- (UIPanGestureRecognizer*)panGestureRecognizer
{
    if ( _panGestureRecognizer == nil )
    {
        SWDirectionPanGestureRecognizer *customRecognizer =
            [[SWDirectionPanGestureRecognizer alloc] initWithTarget:self action:@selector(_handleRevealGesture:)];

        customRecognizer.direction = SWDirectionPanGestureRecognizerHorizontal;
        customRecognizer.delegate = self;
        _panGestureRecognizer = customRecognizer ;
    }
    return _panGestureRecognizer;
}
4

6 に答える 6

2

//UPD:
私の以前の解決策はやり過ぎのようです。getter を呼び出してデフォルトの動作を取得できます。いえ

[revealViewController panGestureRecognizer];

// 古い解決策独自のビューに を
追加することもできます。たとえば、 のサブクラスでは次のようになります。SWRevealViewControllerpanGestureRecognizerSWRevealViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // adds gesture recognizer to the whole thing
    [self.view addGestureRecognizer:self.panGestureRecognizer];
}
于 2014-02-19T12:39:47.767 に答える
1

ナビゲーション コントローラーを使用していて、ジェスチャ レコグナイザーを self.view に追加しようとすると、ナビゲーション バーをスワイプしてもジェスチャが応答しません。私がしたことは、SWReaveal Classes に入り、2 つ目のジェスチャ認識エンジンを追加することでした。そこで、1 つの認識機能を self.view に追加し、もう 1 つをナビゲーション バーに追加します。完璧に動作します。必要に応じてコードを共有できますが、それほど難しくはありません

于 2013-07-25T14:12:45.190 に答える