2012-05-17 62 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; 

也被稱爲蠻力。


現在我看它,我看到一個錯誤。如果用戶直接觸摸滾動條,則可能滾動條將成爲返回的視圖。我從來沒有發生過這種情況(據我所知至少),但我仍然應該測試並編寫解決方案。

相關問題