在我的手势识别器处理程序中,我需要知道识别器连接到/响应的屏幕上的哪个项目。例如,如果用户点击图像,我的处理程序如何找出哪个图像被点击?如何判断在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. 如何判断控制器中是否定义了某个视图(图块)?