Updated for Xcode 14.2
SwiftUI lets you combine text views using +
, but you can also place images directly into text using a simple Text
initializer. This allows you to place images directly inside text, including having the text and images wrap as needed.
For example, this writes “Hello World” with a star image in the middle:
Text("Hello ") + Text(Image(systemName: "star")) + Text(" World!")
Download this as an Xcode project
The images inside your text will automatically adjust to match whatever font or foreground color you’ve chosen, but make sure you apply your modifiers to the whole joined text rather than simply the last item.
For example, this will make the whole combined text large and blue:
(Text("Hello ") + Text(Image(systemName: "star")) + Text(" World!"))
.foregroundColor(.blue)
.font(.largeTitle)
Download this as an Xcode project
Whereas this – without the extra parentheses – will make only the “World” text large and blue:
Text("Goodbye ") + Text(Image(systemName: "star")) + Text(" World!")
.foregroundColor(.blue)
.font(.largeTitle)
Download this as an Xcode project
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.