изменить fillColor выбранного CAShapeLayer - PullRequest
8 голосов
/ 23 ноября 2011

Я пытаюсь изменить заливку цвета CAShapeLayer, когда слой, в котором он содержится, тронут. Я могу изменить цвет фона прикосновения слоя следующим образом:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
CALayer *layer = [(CALayer *)self.view.layer.presentationLayer hitTest:point];
layer = layer.modelLayer;
layer.backgroundColor = [UIColor blueColor].CGColor;
}

Это превращает фон «слоя» в синий цвет, как и ожидалось. Моя проблема заключается в том, как я могу изменить цвет слоя CAShapelayer внутри «слоя»? Спасибо!

1 Ответ

16 голосов
/ 24 ноября 2011

A CAShapeLayer имеет свойство fillColor, которое можно передать в CGColor для изменения:

CAShapeLayer* shapeLayer = (CAShapeLayer*)layer.modelLayer;
shapeLayer.fillColor = [UIColor blueColor].CGColor;

См. Также: Ссылка на класс CAShapeLayer

...