我有一个图像视图。我在像这样的图像视图中检测到触摸
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
int viewTag=[touch view].tag;
if ([[touch view] isKindOfClass:[UIImageView class]])
{
//My code
}
}
和触摸在图像视图上移动。每当我的触摸在特定时间从图像视图中移出时,我需要一个警报视图。如何在触摸移动时检测图像视图中的触摸?...
答案 0 :(得分:1)
我建议使用UIPanGestureRecognizer
并将其添加到要检测的图像视图的更大超视图中。这样,即使触摸在外部开始并移入和移出图像视图,您也可以在手势处理程序中跟踪触摸的移动。
这很简单,例如创建一个名为handlePan:
的方法,使用处理程序方法创建手势识别器,将其添加到适当的超级视图中。现在,只要手势处于活动状态并且触摸移动,您的处理程序方法就会被调用,您可以检查它是否在图像视图中。
答案 1 :(得分:0)
您应该使用此方法......
-(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方法中相应地检查
答案 2 :(得分:-1)
您可以在UIButton
之上添加相同大小的透明UIImageView
并跟踪UIControlEventTouchDragOutside
[button addTarget:self action:@selector(draggedOutside:) forControlEvents:UIControlEventTouchDragExit];