Core Text
Core Text allows strings to be drawn with multiple fonts and styles. It is implemented by the Core Text framework; to utilize it, your app must link to CoreText.framework, and your code must import <CoreText/CoreText.h>
. It uses C, not Objective-C, and it’s rather verbose, but getting started with it is not difficult.
A typical simple Core Text drawing operation begins with an attributed string. This is an NSAttributedString (or CFAttributedString; they are toll-free bridged), which is a string accompanied by attributes (such as font, size, and style) applied over ranges. Each attribute is described as a name–value pair. The names of the attributes are listed in Apple’s Core Text String Attributes Reference, along with their value types. The most commonly used attribute is probably kCTFontAttributeName
, which determines the font and size of a stretch of text; its value is a CTFontRef, a Core Text type which is not bridged to UIFont. You’ll typically supply attributes as a dictionary of name–value pairs.
For example, imagine that we have a UIView subclass called StyledText, which has a text
property that is an attributed string. Its job will be to draw that attributed string into itself:
@interface StyledText : UIView { } @property (nonatomic, copy) NSAttributedString* text; @end
Imagine further that an instance of StyledText appears in the interface and that we have a reference to it as an instance variable called styler
. How, then, might we create an NSAttributedString and ...
Get Programming iOS 4 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.