UISegmentControl长这样:
用法也很简单,只需要几行代码:
UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc", @"ddd", nil]];
sc.frame = CGRectMake(10, 120, 300, 40);
[self.view addSubview:sc];
另外,数组中也可以添加图片;关于segment的设置常用的有如下几个:
1.样式
[sc setSegmentedControlStyle:UISegmentedControlStyleBar];
有如下几种样式:
typedef enum {
UISegmentedControlStylePlain, // large plain
UISegmentedControlStyleBordered, // large bordered
UISegmentedControlStyleBar, // small button/nav bar style. tintable
UISegmentedControlStyleBezeled, // large bezeled style. tintable
} UISegmentedControlStyle;
2.自动弹起
[sc setMomentary:YES];//自动弹起
默认是NO,比如按下第一个之后,手指离开屏幕就变成了这样
如果设置成yes的话手指离开屏幕后第一项会自动弹起,效果仍和第一张图一样
3.插入,可以插入图片和文字
[sc insertSegmentWithImage:image atIndex:0 animated:YES]; [sc insertSegmentWithTitle:str atIndex:0 animated:YES];
当然,也可以取得图片和文字,还有删除和关闭某一个segment[sc insertSegmentWithTitle:@"haha" atIndex:sc.numberOfSegments animated:YES];
// [sc titleForSegmentAtIndex:0];//取title // [sc imageForSegmentAtIndex:0];//取图
// [sc removeSegmentAtIndex:sc.numberOfSegments animated:YES];//删除 // [sc setEnabled:NO forSegmentAtIndex:2];//关闭某一个segment
4.设置背景图片和间隔图片
[sc setBackgroundImage:[UIImage imageNamed:@"header_bg.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//最后一个参数是横屏还是竖屏
[sc setDividerImage:[UIImage imageNamed:@""] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//间隔图片
5.添加事件[sc addTarget:self action:@selector(segmentChange:) forControlEvents:UIControlEventValueChanged];
- (void)segmentChange:(UISegmentedControl *)control { switch (control.selectedSegmentIndex) {//获取出发事件的segment case 0: NSLog(@"aaa"); break; case 1: NSLog(@"bbb"); case 2: NSLog(@"ccc"); ... default: break; } }
6.另外,还可以将segment添加到navigation上边
self.navigationItem.titleView = sc;