2013-12-12 5 views
1

У меня есть этот код, где я рисую круги на экране, и хочу удалить только последний обращенный кружок. Что я могу сделать? Код используется для рисования круга при двойном нажатии. Я хочу удалить последний кружок, когда я нажимаю один раз.Как я могу удалить круг, нарисованный в iOS?

- (UIBezierPath *)makeCircleAtLocation:(CGPoint)location radius:(CGFloat)radius { 

    iOSCircle *circle = [[iOSCircle alloc] init]; 
    circle.circleCenter = location; 
    circle.circleRadius = radius; 
    [totalCircles addObject:circle]; 

    UIBezierPath *path = [UIBezierPath bezierPath]; 
    [path addArcWithCenter:circle.circleCenter 
       radius:circle.circleRadius 
       startAngle:0.0 
       endAngle:M_PI * 2.0 
       clockwise:YES]; 

    return path; 
} 

- (IBAction) tapEvent: (UIGestureRecognizer *) sender 
{ 

    CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    shapeLayer.path = [[self makeCircleAtLocation:location radius:2.5] CGPath]; 
    shapeLayer.strokeColor = [[UIColor redColor] CGColor]; 
    //shapeLayer.fillColor = nil; 
    shapeLayer.lineWidth = 2.5; 

    // Add CAShapeLayer to our view 

    [self.view.layer addSublayer:shapeLayer]; 

    // Save this shape layer in a class property for future reference, 
    // namely so we can remove it later if we tap elsewhere on the screen. 

    self.circleLayer = shapeLayer; 
    } 

} 

ответ

2

Создать свой круг в отдельном CAShapeLayer слое с использованием CGPath, и добавить его в качестве подслоя вашего view.layer. Таким образом, вы будете иметь полный контроль над этим кругом (показывая или скрывая его).

+0

Можете ли вы сделать этот код для меня? – user3065680