0
我有一個複雜的路徑,幾個貝塞爾段連接在一起。此路徑是動態的,用戶可以添加和刪除此路徑內的點。用於點檢測的寬貝塞爾路徑
當我畫的路徑,我救UIBezierPath
副本,就像這樣:
CGContextBeginPath(context);
for (NSUInteger i = 0; i < _points.count - 1; i++)
{
// ...
CGContextAddCurveToPoint(context, cp1x, cp1y, cp2x, cp2y, endX, endY);
}
_path = [UIBezierPath bezierPathWithCGPath:CGContextCopyPath(context)];
CGContextStrokePath(context);
我創建長按手勢新點:
- (void)handleLongPress:(UILongPressGestureRecognizer *)recognizer
{
// ...
CGPoint point = [recognizer locationInView:self];
if ([_path containsPoint:point])
{
// process point
}
// ...
}
但是,這需要用戶挖掘非常接近路徑。我希望在我認爲任何抽頭有效的路徑周圍有更廣闊的區域(如線寬)。
如何配置UIBezierPath
以允許更大的區域?我想要它控制這個區域可能有多寬。