В настоящее время я использую CAShapeLayer для одного из моих требований. Мне удалось реализовать fillcolor
, strokecolor
и т. Д., Но я хотел изменить цвет внешней части этого CAShapeLayer. Я попытался сделать это с backgroundcolor
, & последовал за многими ответами от SO, но не смог это сделать. Может ли кто-нибудь помочь мне с решением. Скриншот прилагается iOS: CAShapeLayer, изменение цвета внешнего слоя
Edit 1: Код для создания слоя
// create layer mask for map
CAShapeLayer *maskLayer = [CAShapeLayer layer];
mapView.layer.mask = maskLayer;
// maskLayer.backgroundColor = [[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.7] CGColor];
self.maskLayer = maskLayer;
// create shape layer for circle we'll draw on top of map (the boundary of the circle)
CAShapeLayer *circleLayer = [CAShapeLayer layer];
circleLayer.lineWidth = 3.0;
circleLayer.fillColor = [[UIColor clearColor] CGColor];
circleLayer.strokeColor = [[UIColor blackColor] CGColor];
// circleLayer.borderColor = [[UIColor blackColor] CGColor];
// circleLayer.backgroundColor = [[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.7] CGColor];
[mapView.layer addSublayer:circleLayer];
self.circleLayer = circleLayer;
Edit 2: Debugger Xcode в телезрителя
В изображении выше, я могу видеть, что я установить цвет фона до self.view
. Но я хочу, чтобы это было над моим видом карты & цвет должен быть полупрозрачным, чтобы также отображались данные карты вне круга.
Каков ваш текущий код? – Larme
@ Larme: Просто обновление через минуту – iYoung
Я предполагаю, что вы добавляете слой формы поверх слоя вида. Если вы установите цвет для этого слоя, я надеюсь, что он может работать. – Exploring