Swift version: 5.2
You can draw lines in Core Graphics using move(to:)
and addLine(to:)
. The first function moves the Core Graphics path to a CGPoint
of your choosing, and the second function moves the path to a new point while also adding a line. Once you add in the required code to set up a context and choose a color, you can draw a triangle with this code:
let renderer1 = UIGraphicsImageRenderer(size: CGSize(width: 500, height: 500))
let img1 = renderer1.image { ctx in
ctx.cgContext.setStrokeColor(UIColor.white.cgColor)
ctx.cgContext.setLineWidth(3)
ctx.cgContext.move(to: CGPoint(x: 50, y: 450))
ctx.cgContext.addLine(to: CGPoint(x: 250, y: 50))
ctx.cgContext.addLine(to: CGPoint(x: 450, y: 450))
ctx.cgContext.addLine(to: CGPoint(x: 50, y: 450))
let rectangle = CGRect(x: 0, y: 0, width: 512, height: 512)
ctx.cgContext.addRect(rectangle)
ctx.cgContext.drawPath(using: .fillStroke)
}
Once you've mastered drawing basic lines, you can create neat effects by rotating the context as you draw, like this:
let renderer2 = UIGraphicsImageRenderer(size: CGSize(width: 512, height: 512))
let img2 = renderer2.image { ctx in
ctx.cgContext.setStrokeColor(UIColor.black.cgColor)
ctx.cgContext.translateBy(x: 256, y: 256)
var first = true
var length: CGFloat = 256
for _ in 0 ..< 256 {
ctx.cgContext.rotate(by: CGFloat.pi / 2)
if first {
ctx.cgContext.move(to: CGPoint(x: length, y: 50))
first = false
} else {
ctx.cgContext.addLine(to: CGPoint(x: length, y: 50))
}
length *= 0.99
}
ctx.cgContext.strokePath()
}
SPONSORED Would you describe yourself as knowledgeable, but struggling when you have to come up with your own code? Fernando Olivares has a new book containing iOS rules you can immediately apply to your coding habits to see dramatic improvements, while also teaching applied programming fundamentals seen in refactored code from published apps.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 4.0 – see Hacking with Swift tutorial 27
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.