Arp*_*ekh 4 xcode cocoa-touch objective-c uigesturerecognizer ios
所有。
在我的iOS 8.0应用中。
在父子视图架构中。通过此代码...
[self addChildViewController:slideTableViewController];
[self.view addSubview:slideTableViewController.view];
[slideTableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
我已经在Base View Controller上实现了TapGesturerecognizer和PanGesturerecognizer。
因此,它可以识别“平移(拖动)”和“点击”。我在BaseView上都需要两个手势。
只是不希望点击手势 SlideView
。我想在子视图上执行didSelectRowAtIndexpath方法,
解:
问题1的 答案:许多StackOverflow答案具有相同的基础。当触摸碰到子视图时,请禁用轻按手势。
if([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]){
if(CGRectContainsPoint(slideTableViewController.view.frame,[touch locationInView:self.view])){
return NO;
}
}
Run Code Online (Sandbox Code Playgroud)
回答问题2:
如何确定是PanGesture还是TapGesture?
对于每种手势类型,委托方法将调用
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
Run Code Online (Sandbox Code Playgroud)
如果您在视图中实现了两个手势,即平移手势和触摸手势,
此方法将调用2次,平移手势1次,轻击手势1次。
因此,在此方法中,您可以检查类似isKindOfClass
方法。
非常感谢您的帮助……
归档时间: |
|
查看次数: |
3054 次 |
最近记录: |