我使用函数 addCurveToPoint 有一个由 CGPoint 数组组成的 UIBezierPath,下面是一些代码:
UIBezierPath *path = [[UIBezierPath alloc] init];
[path setLineWidth:10];
[path moveToPoint:pts[0]];
for(int i = 0; i<[array count]; i++) {
[path addCurveToPoint:[array objectAtIndex:i] controlPoint1:pts[1] controlPoint2:pts[2]];
}
当在视图上识别到触摸时,我得到了触摸点,我需要将它与 UIBezierPath 的 GCPoint 进行比较,并说明它是否在 UIBezierPath 内部。我使用的是函数 containsPoint 但它不起作用,这是我的代码:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint p = [touch locationInView:self];
CGPoint point = CGPointMake(p.x, p.y);
NSLog(@"actual point x %f y %f", point.x, point.y);
if ([path containsPoint:point]) {
NSLog(@"it contains the point");
}
}
最后,我需要获取所有触摸点的集合,并说明触摸点是否在 UIBezierPath(或其中大部分)内并添加边距错误,因此触摸不需要如此精确,也怎么能我说 UIBezierPath 的意义有多远?