UIBezierpath移除问题
我正在尝试制作一个游戏,其中一个球从用户画出的线上反弹。 画线的代码包含在下面,并且工作正常,但是一旦球接触到它或者玩家画了一条新线,我将如何移除该线?
path = [UIBezierPath bezierPath]; // Start Coords of Line [path moveToPoint:CGPointMake(pos2x, pos2y)]; [path addLineToPoint:CGPointMake(pos1x, pos1y)]; // End Coords of Line CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.path = [path CGPath]; shapeLayer.strokeColor = [[UIColor whiteColor] CGColor]; shapeLayer.lineWidth = 3.0; shapeLayer.fillColor = [[UIColor clearColor] CGColor]; [self.view.layer addSublayer:shapeLayer];
提前致谢!
当你这样说的时候:
[self.view.layer addSublayer:shapeLayer];
…也保留对该形状图层的引用 。 例如,您可能有一个属性currentShapeLayer
:
self.currentShapeLayer = shapeLayer;
现在你有一个参考,你可以很容易地删除图层:
[self.currentShapeLayer removeFromSuperlayer];
对iOS进行编程就是关于保持你以后需要知道的东西的引用。 如果有更多的path,这意味着更多的形状层次,你将需要一个更复杂,更智能的方式来区分哪一个是你想要删除哪一个。