我使用drawRect
创建了自定义视图。所有绘图逻辑都是在该方法中完成的,我没有将视图拆分为单独的子视图(使用UIBezierPath
绘图)
我需要在这个新的自定义视图的角落添加一个手势识别器 - 但是因为完成的视图是一个"绘图"在上下文中 - 它不被认为是一个单独的UIView - 并且手势识别绘图的所有部分。
只有在抓住一个角落时才能识别手势吗?
我的观点可以以某种方式缓存"右上角"并且在手势识别器的代表中返回" NO"在
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
答案 0 :(得分:2)
以下是一段代码
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (gestureRecognizer != self.tapGestureRecognizer) {
return YES;
}
CGPoint touchLocation = [touch locationInView:self.targetView];
return [self.bezierPath containsPoint:touchLocation];
}
答案 1 :(得分:0)
您可以按照以下方式验证触摸点的位置:
CGPoint point = [gestureRecognizer locationInView:self];
现在检查该点是否位于已定义的区域中:
if(!CGRectContainsPoint([myDefinedCGRect, point))
{
return YES;
}