Ios 当手指拖动UIButton与UIImageView重叠时检测

Ios 当手指拖动UIButton与UIImageView重叠时检测,ios,objective-c,uigesturerecognizer,uipangesturerecognizer,Ios,Objective C,Uigesturerecognizer,Uipangesturerecognizer,我正在使用ui搜索识别器在屏幕上拖动ui按钮。其想法是,用户可以将其拖动到文件夹上,将其插入文件夹中(如iOS图标)。如果我想检测按钮何时与图像重叠,我发现此代码可以正常工作: -(void) touchesEnded:(NSSet *) touches { if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame]) { NSLog(@"Do something."); } } 但是,由于按钮很大,并且相邻的图像较多,

我正在使用
ui搜索识别器
在屏幕上拖动
ui按钮
。其想法是,用户可以将其拖动到文件夹上,将其插入文件夹中(如iOS图标)。如果我想检测按钮何时与图像重叠,我发现此代码可以正常工作:

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

但是,由于按钮很大,并且相邻的图像较多,因此按钮可能与这两个图像重叠。因此,我想检测实际用户手指握住
ui按钮
与图像重叠的时间,以触发正确的操作。有什么想法吗?

UIgestureRecognitizer
将识别平移,当平移结束时,您可以使用在按钮的超级视图中查找手指的位置。然后,您可以查看它们是否与以下内容重叠:


实际上我忘了说,但我使用的是if([(UIPangestureRecognitizer*)发送方状态]==UIgestureRecognitizerStateEnded){not Touchs ended…使用CGRectContainsPoint如何设置要检查的图像?我已更改代码,以反映其作为手势识别器目标的用途,并包含图像视图引用。如果需要检查多个图像,可以循环检查它们的集合并移动
CGRectContainsPoint()
进入循环体。如果我需要检查多个,我可以重复代码更改someImageView…但someImageView需要相同??
- (void)handlePanGesture:(UIPanGestureRecognizer*)recognizer {
    if ([recognizer state] == UIGestureRecognizerStateEnded) {
        CGPoint fingerPoint = [recognizer locationInView:someImageView.superview];

        if (CGRectContainsPoint(someImageView.frame, fingerPoint)) {
              NSLog(@"Do something");
        }
    }
}