iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

UISegmentedControl(セグメンテッドコントロール)の見た目をカスタマイズする

UISegmentedControl(セグメンテッドコントロール)は、いくつかの項目に分割されたボタンを管理するクラスです。

UISegmentedControlを単純に配置した場合、iOS 7.0以降では下図のように表示されます。

f:id:ch3cooh393:20140325154955p:plain

本記事では、セグメンテッドコントロールをカスタマイズしてみましょう。

セグメンテッドコントロールの項目のタイトルを変更する

// 項目のタイトルを変更する
[self.segmentedControl setTitle:@"カスタマイズ" forSegmentAtIndex:0];

f:id:ch3cooh393:20140325160824p:plain

2番目の項目が選択された状態にする

    // 2番目の項目が選択された状態にする
    self.segmentedControl.selectedSegmentIndex = 1;

f:id:ch3cooh393:20140325160938p:plain

セグメンテッドコントロールの色を変える

// セグメンテッドコントロールの色を変える
self.segmentedControl.tintColor = [UIColor purpleColor];

f:id:ch3cooh393:20140325154902p:plain

セグメンテッドコントロールの「選択されている項目」のタイトル色を変更する

    // セグメンテッドコントロールの選択されているタイトルの色を変更する
    NSDictionary *attributes = @{
        NSForegroundColorAttributeName : [UIColor greenColor]
    };
    [self.segmentedControl setTitleTextAttributes:attributes
                                forState:UIControlStateSelected];

f:id:ch3cooh393:20140325155402p:plain

セグメンテッドコントロールの「選択されていていない項目」のタイトル色を変更する

    // セグメンテッドコントロールの選択されていないタイトルの色を変更する
    NSDictionary *attributes = @{
        NSForegroundColorAttributeName : [UIColor brownColor]
    };
    [self.segmentedControl setTitleTextAttributes:attributes
                                  forState:UIControlStateNormal];

f:id:ch3cooh393:20140325155454p:plain