From 5e267cc63db2f0b486fd8733d637892236a42951 Mon Sep 17 00:00:00 2001 From: Sejun Jeong Date: Thu, 17 Jan 2019 03:50:24 +0900 Subject: [PATCH] [FlexibleHeader] Allow touch events in header to pass through Make `MDCFlexibleHeaderView` and it's `contentView` pass event to higher hierarchy. This allows translucent header to overlay interactive view. ## example view hierachy where header is between two interactive view - View - Carousel - Header (pass through) - contentView (pass through) - userHeaderView (hitTest overriden) - Card possible breaking change of #3032 --- components/FlexibleHeader/src/MDCFlexibleHeaderView.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/FlexibleHeader/src/MDCFlexibleHeaderView.m b/components/FlexibleHeader/src/MDCFlexibleHeaderView.m index f11c90df045..79370249fee 100644 --- a/components/FlexibleHeader/src/MDCFlexibleHeaderView.m +++ b/components/FlexibleHeader/src/MDCFlexibleHeaderView.m @@ -398,9 +398,9 @@ - (void)didMoveToWindow { - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *hitView = [super hitTest:point withEvent:event]; - // Forwards taps to the scroll view. - if (hitView == self || (_contentView != nil && hitView == _contentView) - || [_forwardingViews containsObject:hitView]) { + if (hitView == self || (_contentView != nil && hitView == _contentView)) { + hitView = nil; + } else if ([_forwardingViews containsObject:hitView]) { hitView = _trackingScrollView; }