Проблема удаления 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];

Заранее спасибо!


person Community    schedule 07.05.2014    source источник


Ответы (1)


Когда вы говорите это:

[self.view.layer addSublayer:shapeLayer];

...также сохраните ссылку на этот слой формы. Например, у вас может быть свойство currentShapeLayer:

self.currentShapeLayer = shapeLayer;

Теперь, когда у вас есть ссылка, вы можете легко удалить слой:

[self.currentShapeLayer removeFromSuperlayer];

Программирование iOS — это сохранение ссылок на вещи, которые, как вы знаете, вам понадобятся позже. Если есть больше путей, то есть больше слоев формы, вам понадобится более сложный, интеллектуальный способ различения, что есть что, и какой из них вы хотите удалить.

person matt    schedule 07.05.2014