我有如上图所示的ViewA和ViewB,其中ViewA是superview。现在我想对他们添加事件或者手势。有如下情况:
1.touch move ViewB,想要ViewA跟着走,或者反过来,touch move ViewA,想要ViewB跟着走,一种方法。将ViewB(子view)的userinteraction设置为no。
2.我向ViewA添加了gesture,然后ViewB也得到了响应。这是怎么回事有怎么解决呢?
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
- if (touch.view != [self view]) {
- return NO;
- }
- return YES;
- }
加入gesture代理方法, 这样就可以避免 ViewB或者其他的子view响应当前view的手势行为了。
这些都是很简单的view的事件传递行为,解决起来很简单。自己动手写个demo就可以很轻松的解决掉。
总结:我的感觉是view之间事件传递纽在了一起,就先找到touch。然后找到view,将他们分离开。