Ios 如何沿用户触摸移除CAShapelayer?
这是我使用CAShapeLayer绘制一条线的代码。不,我喜欢沿着用户拖动移除CAShapeLayerIos 如何沿用户触摸移除CAShapelayer?,ios,objective-c,uibezierpath,uitouch,cashapelayer,Ios,Objective C,Uibezierpath,Uitouch,Cashapelayer,这是我使用CAShapeLayer绘制一条线的代码。不,我喜欢沿着用户拖动移除CAShapeLayer UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointMake(touchPoint.x,touchPoint.y)]; [path addLineToPoint:CGPointMake(startingPoint.x,startingPo
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(touchPoint.x,touchPoint.y)];
[path addLineToPoint:CGPointMake(startingPoint.x,startingPoint.y)];
shapeLayer = [CAShapeLayer layer];
shapeLayer.lineCap=kCALineCapSquare;
shapeLayer.path = [path CGPath];
shapeLayer.lineWidth = single.width;
shapeLayer.fillColor = [[UIColor redColor] CGColor];
[self.layer addSublayer:shapeLayer];
[clearBeizer addObject:shapeLayer];
这是我期望的屏幕截图:
现在我想像这样移除用户触摸中的cashapelayer
实现这一点没有捷径。您可以尝试以下方法:
阵列中
,将接触点与阵列中的点进行比较,然后移除该点并用剩余点重新绘制整个贝塞尔路径
CAShapeLayer
上,以便贝塞尔路径被新的贝塞尔路径覆盖可能重复的请不要为同一个问题发布多个问题,用图片和更新的代码更新原始问题。