作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
全部。
在我的 iOS 8.0 应用中。
在父 subview 架构中。通过这段代码...
[self addChildViewController:slideTableViewController];
[self.view addSubview:slideTableViewController.view];
[slideTableViewController didMoveToParentViewController:self];
我已经在基本 View Controller 上实现了 TapGesturerecognizer 和 PanGesturerecognizer。
因此,它可以识别平移(拖动)和点击。我的 BaseView 需要这两种手势。
只是不想在 SlideView
上点击手势。因为我想在 subview 上执行 didSelectRowAtIndexpath 方法,
解决方案:
问题 1 的答案:许多 StackOverflow 答案具有相同的基础......当您的触摸遇到 subview 时禁用点击手势。
if([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]){
if(CGRectContainsPoint(slideTableViewController.view.frame,[touch locationInView:self.view])){
return NO;
}
}
问题 2 的答案:
如何判断是PanGesture还是TapGesture?
委托(delegate)方法将调用每个手势类型
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
如果您在 View 中实现了两种手势,平移手势和触摸手势,
此方法将调用 2 次,1 次用于平移手势,1 次用于点击手势。
所以,在这个方法中你可以像 isKindOfClass
方法一样检查。
非常感谢您的帮助......
最佳答案
只需设置 tapGesture.cancelsTouchesInView = YES;
关于ios - 在 subview Controller 上禁用点击手势?如何判断是PanGesture还是TapGesture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131808/
我是一名优秀的程序员,十分优秀!