0

我有一个图像,我想设置以响应几个不同的手势响应者。例如,如果图片的一部分被触摸,我希望调用一个选择器,另一个选择器用于图片的不同部分。单个视图的多个手势响应器

我看着UIGestureRecognizerUITapGestureRecognizer类,但我找不到一种方法来指定要与它们关联的图像区域。这是所有可能的iOS?如果是的话,我应该考虑使用哪些类?

回答

3

最简单的办法是奠定在图像无形的意见,并把手势识别他们。

如果这不可行,你必须看看手势识别的自来水处理程序locationInView并找出你想要根据用户敲击在哪里做什么。

+0

为我工作,谢谢! – 2012-01-05 18:36:29

2

使用locationInView:属性来确定您的自来水发生的位置,然后有条件地调用的方法。你可以通过设置一些对应你的命中区域的CGRect来做到这一点。然后使用CGRectContainsPoint()函数确定水龙头是否落在其中一个命中区域。

水龙头手势识别动作可能是这个样子:

- (void)tapGestureRecognized:(UIGestureRecognizer *)recognizer 
{ 
    // Specify some CGRects that will be hit areas 
    CGRect firstHitArea = CGRectMake(10.0f, 10.0f, 44.0f, 44.0f); 
    CGRect secondHitArea = CGRectMake(64.0f, 10.0f, 44.0f, 44.0f) 

    // Get the location of the touch in the view's coordinate space 
    CGPoint touchLocation = [recognizer locationInView:recognizer.view]; 

    if (CGRectContainsPoint(firstHitArea, touchLocation)) 
    { 
     [self firstMethod]; 
    } 
    else if (CGRectContainsPoint(secondHitArea, touchLocation)) 
    { 
     [self secondMethod]; 
    } 
}