An easy way to draw a circle using CAShapeLayer
An easy way to draw a circle is to create a CAShapeLayer
and add a UIBezierPath
.
CAShapeLayer *circleLayer = [CAShapeLayer layer];[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)] CGPath]];
let circleLayer = CAShapeLayer();circleLayer.path = UIBezierPath(ovalIn: CGRect(x: 50, y: 50, width: 100, height: 100)).cgPath;
After creating the CAShapeLayer
we set its path
to be a UIBezierPath
.
Our UIBezierPath
then draws a bezierPathWithOvalInRect
. The CGRect
we set will effect its size and position.
Now that we have our circle, we can add it to our UIView
as a sublayer
.
[[self.view layer] addSublayer:circleLayer];
view.layer.addSublayer(circleLayer)
Our circle is now visible in our UIView
.
If we wish to customise our circle's color properties we can easily do so by setting the CAShapeLayer
's stroke
- and fill
color.
[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
shapeLayer.strokeColor = UIColor.red.cgColor;shapeLayer.fillColor = UIColor.clear.cgColor;
Additionall properties can be found over at 's documentation on the subject https://developer.apple.com/.../CAShapeLayer_class/index.html.
Using CAShapeLayer Class makes drawing easy...1.Create CAShapeLayer Object2.Create a Circular path 3.Set the path to the wanted CAShapeLayer path4.Add the layer to your view
let shapeLayer = CAShapeLayer() let center = view.center let circulPath = UIBezierPath(arcCenter: center, radius: 100, startAngle: 0, endAngle: 2.0 * CGFloat.pi, clockwise: true) shapeLayer.path = circulPath.cgPath view.layer.addSublayer(shapeLayer)
Note That ,here I draw the circle from center of the view. You can also set the fill color for your circle like bellow:
shapeLayer.fillColor = UIColor.red.cgColor
for further study you can check on CALayer.com