我有一个UIView,我正在基于touchesBegan和touchesMoved呈现UIBezierPath。但我只想画在UIVIew的某个区域。我想在UIView中设置一个只注册触摸的CGRect。此区域以外的任何接触都不会被注册。
理想情况下,如果用户在此矩形之外移动,他们可以保持触摸,但是当他们拖回到该区域时会调用touchesBegan方法。
任何人都可以帮忙吗?感谢。
答案 0 :(得分:1)
使用pointInside:withEvent:告诉它不接受该点是否在该区域之外。
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return [self isPointWithinMyBounds:point];
}
- (BOOL) isPointWithinMyBounds:(CGPoint) point{
//determine if the point is within the rect
return NO;
}
touchesMoved事件将是复杂的事件。你会在视图之外停止绘画。
但这应该可以达到你想要的效果。
答案 1 :(得分:0)
你可以把一个看不见的UIView放在你当前的UIView上,按你想要的触摸区域大小调整。然后只需将手势识别器添加到该视图中。