分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。
初始化的数组中 必须是 字符串(标题) 或者 图片
NSArray *itemArray = @[@”第一段”,@”第二段”,@”第三段”];
1.初始化分段按钮
UISegmentedControl *segmentControl = [[UISegmentedControl alloc]initWithItems:itemArray];
2.位置
segmentControl.frame = CGRectMake(20, 100, 300, 50);
3.添加背景颜色
segmentControl.backgroundColor = [UIColor yellowColor];
4.设置默认选中(索引从0开始)
segmentControl.selectedSegmentIndex = 1;
5.修改选中的颜色
segmentControl.tintColor = [UIColor greenColor];
6.修改中间段的宽度
[segmentControl setWidth:200 forSegmentAtIndex:1];
[self.view addSubview:segmentControl];
[segmentControl release];
实现页面跳转
1.把控制器 改成属性 方便调用
@property (nonatomic,retain)TwoViewController *twoVC;
@property (nonatomic,retain)ThreeViewController *threeVC;
@property (nonatomic,retain)FourViewController *fourVC;
释放控制器
-(void)dealloc
{
[_twoVC release];
[_threeVC release];
[_fourVC release];
[super dealloc];
}
2.如果选用 图片初始化 必须使用镂空图
创建三张图片
UIImage *image = [UIImage imageNamed:@”01-refresh”];
UIImage *image1 = [UIImage imageNamed:@”02-redo”];
UIImage *image2 = [UIImage imageNamed:@”03-loopback”];
把图片添加到数组里
NSArray *array = @[image,image1,image2];
3.初始化一个UISegmentedControl对象
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:array];
4.添加属性
添加位置
segmentControl.frame = CGRectMake(20, 100, 300, 50);
添加背景颜色
segmentControl.backgroundColor = [UIColor greenColor];
添加选中颜色
segmentControl.tintColor = [UIColor yellowColor];
添加默认选中索引
segmentControl.selectedSegmentIndex = 0;
5.添加一个点击事件
选取ValueChanged 实际上是监测的 索引的变化
[segmentControl addTarget:self action:@selector(segmentedAction:) forControlEvents:(UIControlEventValueChanged)];
6.添加到视图上
[self.view addSubview:segmentControl];
7.释放
[segmentControl release];
8.创建控制器 并添加为子控制器
self.twoVC = [[TwoViewController alloc] init];
添加子控制器并且显示视图
[self addChildViewController:self.twoVC];
[self.view addSubview:self.twoVC.view];
[_twoVC release];
self.threeVC = [[ThreeViewController alloc] init];
[self addChildViewController:self.threeVC];
[self.view addSubview:self.threeVC.view];
[_threeVC release];
self.fourVC = [[FourViewController alloc] init];
[self addChildViewController:self.fourVC];
[self.view addSubview:self.fourVC.view];
[_fourVC release];
最前面的应该是segment
然后是默认选中第一界面视图 TwoVC.view
[self.view bringSubviewToFront:self.twoVC.view];
[self.view bringSubviewToFront:segmentControl];
9.实现点击方法
-(void)segmentedAction:(UISegmentedControl *)segment;
{
需求 判断出 点击了那个分段按钮
每个分段按钮 控制一个界面 每个界面是一个控制器来控制 并且 可以切换界面
segment.selectedSegmentIndex 选中的索引
通过索引 切换不同的页面
switch (segment.selectedSegmentIndex) {
case 0:
[self.view bringSubviewToFront:self.twoVC.view];
break;
case 1:
[self.view bringSubviewToFront:self.threeVC.view];
break;
case 2:
[self.view bringSubviewToFront:self.fourVC.view];
break;
default:
break;
}
每次都把segment放最上面
[self.view bringSubviewToFront:segment];
}