不管我尝试了多少,都无法访问(手柄滚动/ Touchevents)两个正方形视图A和B(B上方的A)之间的重叠区域(直角三角形),如图所示
我想要由UIbezierpath定义的右侧部分(三角形B)来处理其下的视图(即B)的滚动。由于它是bezierpath,因此我无法通过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方法以检测特定视图上的触摸。只需将View子类化并实现hitTest方法。
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
if ([path containsPoint:point]){
return [super hitTest:point withEvent:event];
}
else{
return nil;
}
}
关于ios - uibezierpath内部的pointInside:withEvent(两个 View 之间的重叠区域),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34370512/