繁体   English   中英

触摸移动时如何检测图像视图的触摸结束

[英]How to detect touch end of image view when touches moving

我有图像视图。 我在图像视图中这样检测到触摸

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   UITouch *touch = [touches anyObject];
   int viewTag=[touch view].tag;

   if ([[touch view] isKindOfClass:[UIImageView class]])
   {
      //My code
   }
}

并在图像视图上移动。 每当在特定时间我的触摸移出图像视图时,我都需要一个警报视图。 如何从触摸移动的图像视图中检测到触摸?

我建议使用UIPanGestureRecognizer并将其添加到要检测的图像视图的更大的超级视图中。 这样,即使触摸从外部开始并移入和移出图像视图,您也可以在手势处理程序中跟踪触摸的运动。

创建一个名为handlePan:的方法非常容易handlePan:例如,使用您的处理程序方法创建手势识别器,然后将其添加到适当的超级视图中。 现在,只要手势处于活动状态并且触摸移动,您的handler方法都将被调用,您可以检查它是否在图像视图中。

您应该使用此方法...

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
   UITouch *touch = [touches anyObject];
   int viewTag=[touch view].tag;

   if ([[touch view] isKindOfClass:[UIImageView class]])
   {
  //My code
   }
   else
   {
      //show the alertView here
   }
}

并检查初始点击是否在imageView上,您必须在touchesBegan方法中设置一个标志...并在touchesMoved方法中进行相应的检查

您可以在UIImageView顶部添加相同大小的透明UIButton并跟踪UIControlEventTouchDragOutside

[button addTarget:self action:@selector(draggedOutside:) forControlEvents:UIControlEventTouchDragExit];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM