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,將他們分離開。