1

画面の周りUIPanGestureRecognizerをドラッグするために使用しています。UIButtonアイデアは、ユーザーがそれをフォルダーにドラッグしてフォルダーに挿入できるということです (iOS アイコンのように)。ボタンが画像と重なったときを検出したい場合、私が見つけたこのコードはうまくいきます:

-(void) touchesEnded:(NSSet *) touches {
if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame]) {
  NSLog(@"Do something.");
}
  }

ただし、ボタンが大きく、複数の画像が隣り合っているため、ボタンが両方と重なる場合があります。したがって、実際のユーザーの指UIButtonが画像と重なって正しいアクションをトリガーするタイミングを検出したいと考えています。何か案は?

4

1 に答える 1

2

UIGestureRecognizerはパンを認識し、パンが終了するとlocationInView:、ボタンのスーパー ビューで指の位置を見つけるために使用できます。次に、それらが と重複しているかどうかを確認できますCGRectContainsPoint(frame, point)

- (void)handlePanGesture:(UIPanGestureRecognizer*)recognizer {
    if ([recognizer state] == UIGestureRecognizerStateEnded) {
        CGPoint fingerPoint = [recognizer locationInView:someImageView.superview];

        if (CGRectContainsPoint(someImageView.frame, fingerPoint)) {
              NSLog(@"Do something");
        }
    }
}
于 2013-04-14T15:52:08.873 に答える