pointInside:withEvent inside uibezierpath(两个视图之间的重叠区域)

pointInside:withEvent inside uibezierpath (overlapping area between two views)

无论我尝试了多少,我都无法访问(处理 scrolling/Touchevents)两个方形视图 A 和 B(A 在 B 之上)之间的重叠区域(直角三角形)如图所示

我想要由 UIbezierpath 定义的右侧部分(三角形 B)来处理其下方视图(即 B)的滚动。我无法通过 pointInside: withEvent: 访问它,因为它是贝塞尔路径。 甚至 touchesBegan:withEvent: 根本没用

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
    if ([leftPath containsPoint:touchPoint])
    {  //Do something
     }
 }

请帮忙。

您必须实现 UIView 的 hitTest 方法来检测特定视图上的触摸。只需将您的视图子类化并实现 hitTest 方法。

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{

if ([path containsPoint:point]){

    return [super hitTest:point withEvent:event];
}
else{

    return nil;
}

}