8

GestureRecognizer の UIView のサイズまたは動きを制限する方法があるかどうかを知りたいです。

もちろん、独自の制限コードを作成することもできますが、いくつかのプロパティまたは何かを設定して制限を設定できるかどうかを知りたいです。

たとえば、特定の CGRect 内にUIPanGestureRecognizer追加されたビューの動きを制限したいので、その境界矩形を設定して、ビューが境界フレームから外れているかどうかを感知する方法はありますか?PanGesturePanGesture

4

2 に答える 2

0

私が知る限り、あなたはそれを自分で書かなければなりません。

タップ ジェスチャを使用すると、何本の指で何回のタップに応答するかを設定できますが、それらのほとんどは多くのヘルパーを提供しません。

于 2011-08-11T23:59:32.390 に答える
0

これを達成する最も簡単な方法は、その四角形に目に見えないビューを作成し、それにジェスチャーを追加することだと思います。例: rect {a,b,c,d} 内のビュー X の動きを検出したいとします。{a,b,c,d} rect に UIView Y を作成します。背景色を clearColor に設定します。Gesture Recognizer を作成し、Y ビューに追加します。ジェスチャーのセレクターで、次のようにします。

- (void) selector:(UIPanGestureRecognizer *) gesture
{
    UIView *viewX = [self.view viewWithTag:kTagViewX];
    //now you know that the gesture took place and you have access to your view
}

ジェスチャをアクティブにする rect を変更する必要がある場合は、Y ビューを移動するだけで出来上がりです!

編集:

UIGestureRecognizer デリゲートを使用して、このメソッドで TRUE または FALSE を返すこともできます。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

そのタッチ引数の位置に応じて。実際、これは Apple が WWDC セッション ビデオの 1 つで提案している方法です。また、別のビューを追加してメモリをいっぱいにする必要がないため、より優れています。

于 2012-05-10T10:27:25.410 に答える