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,这意味着更多的形状层次,你将需要一个更复杂,更智能的方式来区分哪一个是你想要删除哪一个。