概述:
UISegmentedControl (分段控件), 相当于集成了若干个Button, 通常我们会点击不同的segment来切换不同的view.并且具有指示功能. iOS5 之后,可以自定义控件, 包括分段按钮的添加/ 删除/ , 外观的设定. 以及单个分段区域的设定.
其事件类型为 UIControlEventValueChang
1. 基本属性
管理分段内容
forSegmentAtIndex:
(
NSUInteger
)
segment
forSegmentAtIndex:
(
NSUInteger
)
segment
|
指定下标设置图片
获取指定下标的图片
指定下标设置标题
获取指定下标的标题
|
管理分段控件
animated:
(
BOOL
)
animated
animated:
(
BOOL
)
animated
- (
void
)
removeAllSegments
- (
void
)
removeSegmentAtIndex:
(
NSUInteger
)
segment
animated:
(
BOOL
)
animated
|
指定下标/ 标题 插入分段
指定下标/ 图片 插入图片
分段个数
移除所有分段
移除指定分段
选中某一分段
|
管理控件的行为和外观
@property
(
nonatomic
,
getter
=
isMomentary
)
BOOL
momentary
- (
void
)
setEnabled:
(
BOOL
)
enabled
forSegmentAtIndex:
(
NSUInteger
)
segment
- (
BOOL
)
isEnabledForSegmentAtIndex:
(
NSUInteger
)
segment
- (
void
)
setContentOffset:
(
CGSize
)
offset
forSegmentAtIndex:
(
NSUInteger
)
segment
- (
CGSize
)
contentOffsetForSegmentAtIndex:
(
NSUInteger
)
segment
- (
void
)
setWidth:
(
CGFloat
)
width
forSegmentAtIndex:
(
NSUInteger
)
segment
- (
CGFloat
)
widthForSegmentAtIndex:
(
NSUInteger
)
segment
@property
(
nonatomic
)
BOOL
apportionsSegmentWidthsByContent
|
选中时闪一下即表示选中
分段类型 默认不分组
指定下标分段是否可编辑
设置指定下标 内容区域大小
指定下标分段, 设置宽度
If the value of this property is
YES
, for segments whose width value is
0
, the control attempts to adjust segment widths based on their content widths.
|
自定义外观
| |
初始化方法
forState:
(
UIControlState
)
state
|
实例
//segmentedControl对象的创建
UISegmentedControl *segmC = [[ UISegmentedControl alloc ] initWithItems : @[ @"认真" , @"负责" , @"用心" , @"耐心" ] ]; segmC. frame = CGRectMake ( 30 , 100 , CGRectGetWidth ( self . view . bounds ) - 60 , 40 ); //为分段控制绑定响应方法--segmentControl是通过切换分段来做出响应方法的,所以其对应的事件类型为:UIControlEventValueChanged [segmC addTarget : self action : @selector (handleSegmCAction:) forControlEvents : UIControlEventValueChanged ]; //设置被默认被选中的下标 -- 分段控件默认都有被选中的分段,分段除了切换操作外还有指示说明操作的作用 segmC. selectedSegmentIndex = 0 ; [ self handleSegmCAction :segmC]; //通过表面着色属性tintColor修改分段控件的外观 segmC. tintColor = [ UIColor lightGrayColor ]; //分段控件默认的背景颜色是无色 //第2节:为每个分段添加图片 for ( int i = 0 ; i < segmC. numberOfSegments ; i++) //numberOfSegments:(只读属性)控件中子控件的个数 { NSString *imaN = [ NSString stringWithFormat : @"%d" ,i + 1 ]; UIImage *image = [[ UIImage imageNamed :imaN] imageWithRenderingMode : UIImageRenderingModeAlwaysOriginal ]; //修该图片的渲染模式,将其设置为原始模式 [segmC setImage :image forSegmentAtIndex :i]; } [ self . view addSubview :segmC];
[segmC release];
|