O'Reilly logo

iOS 6 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.17. Displaying Static Text with UILabel

Problem

You want to display text to your users. You would also like to control the text’s font and color.

Note

A static text is text that is not directly changeable by the user at runtime.

Solution

Use the UILabel class.

Discussion

Labels are everywhere in iOS. You can see them in practically every application, except for games where the content is usually rendered with OpenGL ES instead of the core drawing frameworks in iOS. Figure 2-50 shows several labels in the Settings app on the iPhone.

Labels as titles of each one of the settings

Figure 2-50. Labels as titles of each one of the settings

You can see that the labels are displaying text in the Settings app, such as General, iCloud, Twitter, Phone, FaceTime, etc.

To create a label, instantiate an object of type UILabel. Setting or getting the text of a label can be done through its text property. So let’s define a label in our view controller’s header file:

#import <UIKit/UIKit.h>

@interface Displaying_Static_Text_with_UILabelViewController
           : UIViewController

@property (nonatomic, strong) UILabel *myLabel;

@end

Now in the viewDidLoad method, instantiate the label and tell the runtime where the label has to be positioned (through its frame property) on the view to which it will be added (in this case, our view controller’s view):

- (void)viewDidLoad{
  [super viewDidLoad];

  self.view.backgroundColor = [UIColor whiteColor];
  CGRect labelFrame = CGRectMake ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required