概述
-
UISegmantController
由多个段组成的水平控件,每个段都作为一个离散的按钮。 - 分段控件可以显示标题(NSString对象)或图像(UIImage对象)
属性和方法
初始化方法
UISegmentedControl *segmentController = [[UISegmentedControl alloc] initWithItems:[NSMutableArray arrayWithObjects:@"1",@"2", nil]];
将分段控制器的内容设置为指定的图像
[segmentController setImage:[UIImage imageNamed:@"验证码"] forSegmentAtIndex:0];
得到特定片段的图像
UIImage *segImage = [segmentController imageForSegmentAtIndex:0];
设置分段控制器每个片段的标题
[segmentController setTitle:@"标题一" forSegmentAtIndex:0];
[segmentController setTitle:@"标题二" forSegmentAtIndex:1];
得到某个片段的标题
NSString *title = [segmentController titleForSegmentAtIndex:0];
设置分段控制器的颜色
[segmentController setTintColor:[UIColor redColor]];
设置分段控制器的背景图片
[segmentController setBackgroundImage:[UIImage imageNamed:@"登录logo"] forState:(UIControlStateNormal) barMetrics:(UIBarMetricsDefault)];
设置分段控制器分割线的图片
[segmentController setDividerImage:[UIImage imageNamed:@"验证码"] forLeftSegmentState:(UIControlStateNormal) rightSegmentState:(UIControlStateNormal) barMetrics:UIBarMetricsDefault];
设置富文本,这里不多做介绍,具体请点此查看
设置给定分段和条形指标的定位偏移量。
[segmentController setContentOffset:CGSizeMake(0, 10) forSegmentAtIndex:0];
确定接收器中的段是否显示选定状态。默认值是No
,如果设置为YES
,则不显示分段控制器中段的选中状态
[segmentController setMomentary:NO];
设置是否启用某一段
[segmentController setEnabled:NO forSegmentAtIndex:0];
得到指定的某一段的启用状态
BOOL isUse = [segmentController isEnabledForSegmentAtIndex:0];
设置指定段的宽度
[segmentController setWidth:150 forSegmentAtIndex:0];
得到某一段的宽度
CGFloat width = [segmentController widthForSegmentAtIndex:0];
指示控件是否尝试根据其内容宽度来调整段宽。
[segmentController setApportionsSegmentWidthsByContent:NO];
在接收器的指定位置插入一个段,并为其提供一个图像作为内容。
[segmentController insertSegmentWithImage:[UIImage imageNamed:@"验证码"] atIndex:0 animated:YES];
在接收器的特定位置插入一个片段,并将其作为内容标题。
[segmentController insertSegmentWithTitle:@"标题三" atIndex:2 animated:YES];
得到分段控制器的个数
NSInteger count = segmentController.numberOfSegments;
删除所有的分段控制器的段
[segmentController removeAllSegments];
设置当前选中的分段控制器的段的下标
[segmentController setSelectedSegmentIndex:0];
添加点击事件
[segmentController addTarget:self action:@selector(valueChanged:) forControlEvents:(UIControlEventValueChanged)];