UISegmentedControl分段控件

    分段控件提供了一栏按钮,但是每次只能激活一个按钮,每一个按钮对应不同的屏幕显示的东西(这里的不同,应该理解为数据的不同,view是相同的,如筛选出不同的信息,但是view是一样的(布局样式是一样的))。

RootView.m

 

// 创建segmentcontrol

   

    // 创建数组

    NSMutableArray *itemsArr = [NSMutableArray array];

    [itemsArr addObject:@"first"];

    [itemsArr addObject:@"second"];

    [itemsArr addObject:@"thied"];

    self.seg = [[[UISegmentedControl alloc]initWithItems:itemsArr]autorelease];

    // 设置frame

    self.seg.frame = CGRectMake(50, 50, 200, 50);

 

 

    self.seg.tintColor = [UIColor greenColor];

   

    // 默认选中

    self.seg.selectedSegmentIndex = 0;

  [self addSubview:_seg];

1、self.seg = [[UISegmentedControl alloc]initWithItems:itemsArr];为初始化方法,是UISegmentedControl特有的初始化方法。initWithItems:的参数是一个数组。

2、数组中又几个元素,这个segment就会分成几栏button。

3、self.seg.tintColor,给分栏设置颜色

4、self.seg.selectedSegmentIndex:为默认选中哪一个栏,参数是数组的下标。

RootViewController.m

 

- (void)viewDidLoad {

    [super viewDidLoad];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];

    btn.frame = CGRectMake(50, 150, 50, 50);

    btn.backgroundColor = [UIColor blueColor];

    [btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];

   

    [self.view addSubview:btn];

   

    // 添加segment点击事件

    [self.rv.seg addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];

  

}

 

- (void)btnAction:(UIButton *)sender{

    NSLog(@"btn");

    // 设置segment分段上的文字

    [self.rv.seg setTitle:@"第一项" forSegmentAtIndex:0];

    [self.rv.seg setTitle:@"第二项" forSegmentAtIndex:1];

    [self.rv.seg setTitle:@"第三项" forSegmentAtIndex:2];

    [self.rv.seg insertSegmentWithTitle:@"第四项" atIndex:3 animated:YES];

   

  

   

}

// segment 响应方法

- (void)segAction:(UISegmentedControl *)sender{

    NSLog(@"%ld",sender.selectedSegmentIndex);

   

    if (sender.selectedSegmentIndex == 0) {

 [sender setTintColor:[UIColor redColor]];

    }else if(sender.selectedSegmentIndex == 1){

        [sender setTintColor:[UIColor blueColor]];

    }else{

        [sender setTintColor:[UIColor whiteColor]];

    }

}

1、在controller里实现segment的逻辑

2、在这里添加一个button,每点击一次button,就会改变一次segment的标题:setTitle:@"第一项" forSegmentAtIndex:0

说明把第0个分段的标题设置成“第一项”。

3、selectedSegmentAtIndex:0.被选中的分栏的下标为0

4、setTintColor:改变分栏的颜色

5、addTarget:selfaction:@selector(segAction:)forControlEvents:UIControlEventValueChanged

添加segment点击事件:第一个参数:谁来执行,第二个参数,到谁那里去找segAction方法,然后执行,第三个参数:事件改变的时候才执行。

 

 

原文地址:https://www.cnblogs.com/Coder-GT/p/4872567.html