diff --git a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index 77cb3d1e5e8..720482e1aab 100644 --- a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -196,6 +196,22 @@ using namespace facebook::react; [self invalidateLayer]; } +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event +{ + auto viewProps = *std::static_pointer_cast(_props); + switch (viewProps.pointerEvents) { + case PointerEventsMode::Auto: + return [super hitTest:point withEvent:event]; + case PointerEventsMode::None: + return nil; + case PointerEventsMode::BoxOnly: + return [self pointInside:point withEvent:event] ? self : nil; + case PointerEventsMode::BoxNone: + UIView *view = [super hitTest:point withEvent:event]; + return view != self ? view : nil; + } +} + static RCTCornerRadii RCTCornerRadiiFromBorderRadii(BorderRadii borderRadii) { return RCTCornerRadii { .topLeft = (CGFloat)borderRadii.topLeft,