UIView与subview之间事件响应链

UIView与subview之间事件响应链

我有如上图所示的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,将他们分离开。

你可能感兴趣的:(UIView,事件响应链)