Swift version: 5.6
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 Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
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.