Chapter 26: Fancy Text Layout

There are several options for displaying text in iOS. There are simple controls like UILabel and full rendering engines like UIWebView. For complete control, including laying out columns or drawing text along a path, you can implement your own layout engine with Core Text.

iOS 6 brings rich text to all of UIKit. Finally, you can display and edit bold and underline without using a web view or Core Text, which greatly simplifies many programs. To get the most out of iOS rich text, you need to understand NSAttributedString as explained in this chapter. After you understand attributed strings, handling rich text is mostly just a matter of requesting it from your text views.

After you’ve mastered attributed strings, you can take full control of text layout using Core Text. In this chapter, you learn about the major parts of Core Text, how to use them to lay out text any way you like, and the limitations that you still need to work around.

The Normal Stuff: Fields, Views, and Labels

You’re probably already familiar with UILabel, UITextField, and UITextView, so I discuss them only briefly here. They’re the basic controls you use for day-to-day text layout.

UILabel is a lightweight, static text control. It’s very common for developers to have problems with dynamic labels (labels with contents set programmatically) they create in Interface Builder. Here are a few tips for using UILabel:

UILabel can display multiline text. Just set its numberOfLines property ...

Get iOS 6 Programming Pushing the Limits: Advanced Application Development for Apple iPhone, iPad and iPod Touch now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.