NEW: Master Swift design patterns with my latest book! >>

How to create rich formatted text strings using NSAttributedString

Written by Paul Hudson    @twostraws

Attributed strings are strings with formatting attached, which means fonts, colors, alignment, line spacing and more. They are supported in many places around iOS, which means you can assign a fully formatted string to a UILabel and have it look great with no further work.

Please keep in mind, when working with fonts it's preferable to use Dynamic Type where possible so that a user's font size settings are honored. The example code below creates an attributed string using the "Headline" Dynamic Type size, then colors it purple. That is then placed into a UILabel by setting its attributedText property:

let titleAttributes = [NSAttributedStringKey.font: UIFont.preferredFont(forTextStyle: UIFontTextStyle.headline), NSAttributedStringKey.foregroundColor: UIColor.purple]

let titleString = NSAttributedString(string: "Read all about it!", attributes: titleAttributes)
yourLabel.attributedText = titleString

Available from iOS 6.0 – see Hacking with Swift tutorial 32

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Build for watchOS

Take your existing Swift skills to Apple's tiniest platform – check out Hacking with watchOS!

Click here to visit the Hacking with Swift store >>