プログラムでSegmented Controlを生成する方法

プログラムのみでSegmented Controlを生成する例を書きます。

新しいプロジェクトを作り、viewDidLoadで生成してみます。

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    //セグメントのタイトルを配列で作成
    NSArray *lists = [NSArray arrayWithObjects:@"昨日", @"今日", @"明日", nil];
    
    //セグメンテッドコントロールの生成
    UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:lists];
    
    //位置・大きさを指定
    sc.frame = CGRectMake(40, 20, 240, 30);
    
    //パーツのスタイルを設定
    sc.segmentedControlStyle = UISegmentedControlStyleBar;
    
    //パーツの色を設定
    sc.tintColor = [UIColor blueColor];
    
    //メソッドに紐付け、ビューに設置
    [sc addTarget:self action:@selector(SegChanged:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:sc];
}

セグメントのタイトルは、配列を使って一気に指定できます。
次にアクションを引き渡すメソッドを追加します。

-(void)SegChanged:(UISegmentedControl*)segctr {
    
    switch (segctr.selectedSegmentIndex) {
        case 0:
            NSLog(@"黒が選択されています");
            self.view.backgroundColor = [UIColor blackColor];
            break;
            
        case 1:
            NSLog(@"黄が選択されています");
            self.view.backgroundColor = [UIColor yellowColor];
            break;
            
        case 2:
            NSLog(@"赤が選択されています");
            self.view.backgroundColor = [UIColor redColor];
            break;
            
        default:
            break;
    }
    
}

以上で実行すると、
sc12

コメントを残す

サブコンテンツ

このページの先頭へ