如何使用Touchesmoved获取多个图像视图的标签?

时间:2014-10-10 12:33:18

标签: ios objective-c iphone

我需要移动触摸的imageView标签。我有10个图像视图和标签从1到10.我需要在手指移动图像时获取imageView标签。

我能够通过

来实现这个目标
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{

                    CGPoint location = [[touches anyObject] locationInView:self.view] ;
                    CGRect fingerRect = CGRectMake(location.x, location.y, 1, 1);


                    for(UIImageView *view in self.view.subviews)
                    {
                        CGRect subviewFrame = view.frame;

                        if(CGRectIntersectsRect(fingerRect, subviewFrame))
                         {
                            //we found the finally touched view
                         }
                    }
}

但我不想使用for循环。是否还有其他替代方案可以获得在我移动下方的imageView?非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

使用此:

UIView* touchedView = [self.view hitTest:location withEvent:nil];

使用此位置,您将获得一个touchView,在您的情况下是UIImageView。