A view that displays one or more lines of informational text.
- iOS 2.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
You can configure the overall appearance of a label's text, and use attributed strings to customize the appearance of substrings within the text. Add and customize labels in your interface programmatically or with the Attributes inspector in Interface Builder.
Follow these steps to add a label to your interface:
Supply either a string or an attributed string that represents the content.
If you are using a nonattributed string, configure the appearance of the label.
Set up Auto Layout rules to govern the size and position of the label in your interface.
Provide accessibility information and localized strings.
Customize the Label's Appearance
You provide the content for a label by assigning either a
NSString object to the
text property, or an
NSAttributed object to the
attributed property. The label displays the property set most recently.
attributed property allows you to control the appearance of individual characters and groups of characters, using the
NSAttributed API. Figure 1 shows a label displaying an
NSAttributed that includes attributes to customize the font, color, and alignment of the string.
If you want to format the label’s text in a uniform fashion, set the
text property to an
NSString object containing the content, and configure the
line properties. Figure 2 shows a label displaying an
NSString with a custom font, color, and alignment.
If you set these appearance properties on a label that displays the content of the
attributed property, the label overrides the appropriate attributes and displays the attributed string with a uniform appearance. Figure 3 shows the label from Figure 1 with the
text property set to green.
Specify the maximum number of lines for the label to use when laying out the text with the
number property. Setting a value of
0 allows the label to use as many lines as necessary to lay out the text within the label’s width. Use the
line property to control how the label splits the text into multiple lines, and the truncation behavior associated with the final line.
Use Auto Layout to position and optionally size the label. The intrinsic content size for a label defaults to the size that displays the entirety of the content on a single line. If you provide Auto Layout constraints that define the width of the label but not the height, the label’s intrinsic content size adjusts the height to display the text completely.
When the label has its size completely defined externally, you can specify how it handles the situation when its content doesn’t fit within the bounds. To reduce the font size, set the
adjusts property to
true and set the
minimum property to a value between
1. The latter of these properties represents how much smaller than the requested font size the label scales the text. Setting the
allows property to
true instructs the label to reduce the spacing between characters before truncating the string. Figure 4 shows a label that uses
adjusts to display the content of an entire string that would otherwise have overflowed.
Design Labels for a Wide Audience
Labels provide valuable information to your users. To make sure that information reaches a wide audience, internationalize text and support accessibility in your labels. For information about how to implement internationalization and localization, see Internationalization. Labels are accessible to VoiceOver by default. The default accessibility traits for a label are Static Text and User Interaction Enabled. For more information, see Supporting VoiceOver in Your App. To learn about using text styles to support Dynamic Type, see Scaling Fonts Automatically.