UISegmentedControl

概述: 
    UISegmentedControl (分段控件), 相当于集成了若干个Button, 通常我们会点击不同的segment来切换不同的view.并且具有指示功能. iOS5 之后,可以自定义控件, 包括分段按钮的添加/ 删除/ , 外观的设定. 以及单个分段区域的设定.
    其事件类型为 UIControlEventValueChang


1. 基本属性

管理分段内容
- ( void ) setImage: ( UIImage * ) image
forSegmentAtIndex: ( NSUInteger ) segment
- ( UIImage * ) imageForSegmentAtIndex: ( NSUInteger ) segment
- ( void ) setTitle: ( NSString * ) title
forSegmentAtIndex: ( NSUInteger ) segment
- ( NSString * ) titleForSegmentAtIndex: ( NSUInteger ) segment

指定下标设置图片

获取指定下标的图片
指定下标设置标题

获取指定下标的标题

管理分段控件
- ( void ) insertSegmentWithImage: ( UIImage * ) image
                       atIndex: ( NSUInteger ) segment
                      animated: ( BOOL ) animated
- ( void ) insertSegmentWithTitle: ( NSString * ) title
                       atIndex: ( NSUInteger ) segment
                      animated: ( BOOL ) animated
@property ( nonatomic ,   readonly )   NSUInteger  numberOfSegments
- ( void ) removeAllSegments
- ( void ) removeSegmentAtIndex: ( NSUInteger ) segment
                    animated: ( BOOL ) animated
@property ( nonatomic )   NSInteger  selectedSegmentIndex

指定下标/ 标题 插入分段


指定下标/ 图片  插入图片


分段个数
移除所有分段
移除指定分段

选中某一分段
管理控件的行为和外观
@property ( nonatomic ,   getter = isMomentary )   BOOL   momentary
@property ( nonatomic )   UISegmentedControlStyle  segmentedControlStyle
- ( 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.
自定义外观
@property ( nonatomic ,   retain )   UIColor  * tintColor
 
初始化方法
- ( instancetype ) initWithItems: ( NSArray * ) items
- ( void ) setTitleTextAttributes: ( NSDictionary * ) attributes
                      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];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值