在我的手勢識別器處理程序中,我需要知道識別器連接到/響應的屏幕上的哪個項目。例如,如果用戶點擊圖像,我的處理程序如何找出哪個圖像被點擊?如何判斷在iOS中點擊了哪個視圖?
0
A
回答
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;
也被稱爲蠻力。
現在我看它,我看到一個錯誤。如果用戶直接觸摸滾動條,則可能滾動條將成爲返回的視圖。我從來沒有發生過這種情況(據我所知至少),但我仍然應該測試並編寫解決方案。
相關問題
- 1. 如何判斷在DocumentViewer上點擊了哪個PageView?
- 2. 如何判斷點擊了哪個按鈕?
- 3. 如何判斷點擊了哪個WPF UserControl?
- 4. TreeView NodeMouseClick - 如何判斷點擊了哪個部分
- 5. 如何判斷哪一行被點擊?
- 6. 如何判斷在表中的href中點擊哪個行號?
- 7. 如何判斷移動Safari中正在點擊哪個「按鈕」?
- 8. 如何判斷哪個圖像被點擊?
- 9. 如何判斷在C#中點擊了哪個物理設備按鈕?
- 10. 在iOS 10的MSStickerBrowserViewController中,如何判斷用戶選擇了哪個貼圖?
- 11. 如何判斷選擇了哪個HubSection
- 12. 如何判斷編輯了哪個NSTextField?
- 13. 如何判斷jQuery點擊發生在哪個元素上?
- 14. 如何判斷使用JQuery單擊了哪個錨?
- 15. 如何判斷哪個面板觸發了單擊事件
- 16. 如何判斷哪個組件生成了DOM節點?
- 17. 如何判斷我點擊哪個元素編號?
- 18. 如何判斷哪個按鈕被點擊onClick()
- 19. 如何判斷哪個按鈕被點擊,動態生成? (MVVM)
- 20. 如何判斷按鈕陣列中正在點擊哪個按鈕?
- 21. 在一組按鈕中,如何判斷哪個按鈕被點擊?
- 22. 如何判斷此視圖鏈接到哪個控制器?
- 23. 如何判斷哪個選項卡欄項目觸發視圖?
- 24. 如何判斷DataGrid的哪一行被點擊?
- 25. 如何判斷jQuery dataTable的哪一行被點擊?
- 26. 檢查在mkmapview上點擊了哪個地圖視圖註釋
- 27. 如何判斷哪個工作簿觸發了一個事件?
- 28. 如何判斷在JIRA中附加了哪些文件?
- 29. 如何判斷在phpBB3中安裝了哪些模塊
- 30. 如何判斷控制器中是否定義了某個視圖(圖塊)?