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

时间:2015-12-19 12:04:33

标签: ios xcode xcode7 uibezierpath

无论我多么努力,我都无法访问(处理滚动/ Touchevents)到两个方形视图A和B(A顶部的A)之间的重叠区域(直角三角形),如此图所示

enter image description here

我希望UIbezierpath定义右侧部分(三角形B)以处理其下方视图的滚动(即B)。我无法通过pointInside: withEvent:访问它,因为它是一条bezier路径。 即使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
     }
 }

请帮忙。

1 个答案:

答案 0 :(得分:1)

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

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

if ([path containsPoint:point]){

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

    return nil;
}

}