web-dev-qa-db-fra.com

Un moyen facile de dessiner un cercle à l'aide de CAShapeLayer

Dans des questions comme Comment dessiner un cercle lisse ... , ... Dessiner un cercle ... et ... dessiner des cercles remplis le la question et la réponse sont très larges, contiennent de nombreuses étapes inutiles et les méthodes utilisées ne sont pas toujours les plus faciles à recréer ou à gérer.

Comment dessiner facilement un cercle et l'ajouter à mon UIView?

31
Aleksander Azizi

Un moyen simple de dessiner un cercle consiste à créer un CAShapeLayer et à ajouter un UIBezierPath.

objectif-c

CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)] CGPath]];

rapide

let circleLayer = CAShapeLayer();
circleLayer.path = UIBezierPath(ovalIn: CGRect(x: 50, y: 50, width: 100, height: 100)).cgPath;

Après avoir créé le CAShapeLayer, nous définissons son path comme un UIBezierPath.

Notre UIBezierPath dessine alors un bezierPathWithOvalInRect. Le CGRect que nous définissons affectera sa taille et sa position.

Maintenant que nous avons notre cercle, nous pouvons l'ajouter à notre UIView en tant que sublayer.

objectif-c

[[self.view layer] addSublayer:circleLayer];

rapide

view.layer.addSublayer(circleLayer)

Notre cercle est maintenant visible dans notre UIView.

Circle

Si nous voulons personnaliser les propriétés de couleur de notre cercle, nous pouvons facilement le faire en définissant la couleur de CAShapeLayerstroke- et fill.

objectif-c

[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];

rapide

shapeLayer.strokeColor = UIColor.red.cgColor;
shapeLayer.fillColor = UIColor.clear.cgColor;

Circle_wColors

Des propriétés supplémentaires peuvent être trouvées dans la documentation de  sur le sujet https://developer.Apple.com/.../CAShapeLayer_class/index.html .

105
Aleksander Azizi