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]; [sc insertSegmentWithTitle:@"haha" atIndex:sc.numberOfSegments animated:YES];
当然,也可以取得图片和文字,还有删除和关闭某一个segment
// [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;
}
}
self.navigationItem.titleView = sc;
本文详细介绍UISegmentedControl的使用方法,包括初始化、样式设置、自动弹起、插入图片和文字、设置背景图片和间隔图片等操作,并提供实例代码。
5468

被折叠的 条评论
为什么被折叠?



