2.9. Customizing the UISegmentedControl

Problem

You have already placed a segmented control or two on your UI, and now want to be able to customize them to match your UI’s theme.

Solution

Either apply tint color to the segmented control or create your own images and apply them to this component.

Discussion

Tint colors are the easiest way of applying new colors to your UI components. The UISegmentedControl class has a property named tintColor that you can utilize to change the tint color of your segmented control. There is one important thing that you have to bear in mind before attempting to change the value of the aforementioned property: the style of your segmented control has to be set to UISegmentedControlStyleBar. You can change the style of your segmented control by changing the value of the segmentedControlStyle property of your control. Here is an example:

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) UISegmentedControl *segmentedControl;
@end

@implementation ViewController

- (void)viewDidLoad{
    [super viewDidLoad];

    NSArray *items = @[@"Item 1", @"Item 2", @"Item 3"];
    self.segmentedControl = [[UISegmentedControl alloc] initWithItems:items];
    /* We have to do this if we want to change the tint color */
    self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    [self.view addSubview:self.segmentedControl];
    self.segmentedControl.center = CGPointMake(self.view.center.x + 25.0f,
                                               self.view.center.y);

    /* Change the tint color now */ ...

Get iOS 6 Programming Cookbook now with O’Reilly online learning.

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