2012-05-17 59 views

回答

7

创建手势识别器时,您总是将其与视图绑定。当检测到手势并且与创建的手势绑定在一起的选择器被调用时,您可以使用gesture.View来找出手势相关的视图。

下面是示例代码

UIImageView *imageView = self.someImageView; 
UITapGestureRecognizer *singleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageSingleTapped:)]; 
[imageView addGestureRecognizer:singleTapGesture]; 

[singleTapGesture release]; 


- (void) imageSingleTapped:(UIGestureRecognizer*)recognizer 
{ 
    UIView *viewTiedWithRecognizer = recognizer.view; // This is the view associated with gesture recognizer. 
} 
1

我也有问题。我不知道我是否有正确的解决方案,但这是我所做的。

CGPoint point = [gestureRecognizer locationInView:self]; 
CGPoint offset = self.scrollView.contentOffset; 
CGPoint contentPoint = CGPointMake(point.x + offset.x, point.y + offset.y); 

for (UIView *view in self.scrollView.subviews) 
    if (CGRectContainsPoint(view.frame, contentPoint)) 
     return view; 

return nil; 

也被称为蛮力。


现在我看它,我看到一个错误。如果用户直接触摸滚动条,则可能滚动条将成为返回的视图。我从来没有发生过这种情况(据我所知至少),但我仍然应该测试并编写解决方案。

相关问题