1

我正在使用在屏幕上UIPanGestureRecognizer拖动 a 。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 回答