无论我多么努力,我都无法访问(处理滚动/ Touchevents)到两个方形视图A和B(A顶部的A)之间的重叠区域(直角三角形),如此图所示
我希望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
}
}
请帮忙。
答案 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;
}
}