これを達成する最も簡単な方法は、その四角形に目に見えないビューを作成し、それにジェスチャーを追加することだと思います。例: 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 つで提案している方法です。また、別のビューを追加してメモリをいっぱいにする必要がないため、より優れています。