Updated for Xcode 14.2
SwiftUI gives us the mask()
modifier for masking one with another, which means you can mask an image using text or an image using an image, or more.
For example, this creates a 300x300 image of stripes, then masks it using the text “SWIFT!” so that the letters act as a cut out for the image:
Image("laser-show")
.resizable()
.frame(width: 300, height: 300)
.mask(
Text("SWIFT!")
.font(.system(size: 72))
)
Download this as an Xcode project
The mask()
modifier is different from clipShape()
, because it also applies any transparency from the masking view – you get to have holes in your underlying view based on the transparency of your mask. On the other hand, clipShape()
only adjusts the outside shape of the view you apply it to.
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!
Link copied to your pasteboard.