ios开发--UISegmentedControl分段

本文详细介绍UISegmentedControl的初始化、内容管理、外观自定义等核心操作,并提供实例代码,帮助开发者掌握这一iOS UI组件。

1.初始化UISegmentedControl

NSArray *arr = [[NSArrayalloc]initWithObjects:@"轻拍",@"长按",@"清扫",@"旋转",@"捏合",@"拖拽", nil];

//先创建一个数组用于设置标题

 

UISegmentedControl *segment =[[UISegmentedControl alloc]initWithItems:arr];

//在没有设置[segmentsetApportionsSegmentWidthsByContent:YES]时,每个的宽度按segment的宽度平分

segment.frame = CGRectMake(0, 400, 320,40);

//设置frame

 

2.管理Segment的内容

[segment setTitle:@" 标题"forSegmentAtIndex:3];

//设置下标为3的segment的标题 下标以0开始IOS里的所有下标都是以0开始

[segment setImage:[UIImageimageNamed:@"3"] forSegmentAtIndex:4];

//设置下标为4的segment的图片

 

3.管理Segments

[segment insertSegmentWithImage:[UIImageimageNamed:@"3"] atIndex:2 animated:YES]; //设置图片

[segmentinsertSegmentWithTitle:@"ddd" atIndex:0 animated:YES];//设置标题

[segment numberOfSegments];//得到segment的数量

[segment removeAllSegments];//移出所有segment

[segment removeSegmentAtIndex:2animated:YES];//移出下标为2的segment

segment.selectedSegmentIndex = 0;//选中第几个segment 一般用于初始化时选中

 

4.管理Segment的行为和外观  

segment.momentary = NO;

//默认为NO 当设置为YES时,当被选中后,一会儿后不显示被选中状态(最左边的样子)

 

 

segment.segmentedControlStyle =UISegmentedControlStyleBar;

typedef enum {

  UISegmentedControlStylePlain, 系统默认平板样式

  UISegmentedControlStyleBordered, 黑边样式

  UISegmentedControlStyleBar, 条状样式

  UISegmentedControlStyleBezeled, 这个类型不要使用,用了会报错喔。

} UISegmentedControlStyle;

//设置样式 当为Bordered和Bar时tintColor渐变颜色才有效

//Bar样式

[segment setEnabled:NO]; //设置segment是否可用 此方法是其父类UIControl的方法

[segment setEnabled:NOforSegmentAtIndex:2];//设置下标为2的segment不可用

[segment setWidth:100 forSegmentAtIndex:2];//这时下表为2的segment的宽度

[segment setContentOffset:CGSizeMake(10,10) forSegmentAtIndex:2];//设置内容偏移

segment.apportionsSegmentWidthsByContent =YES; //是否根据segment的内容改变segment的宽度

 

5.自定义外观

[segment setTintColor:[UIColor redColor]];//设置segments的颜色

[segment setBackgroundImage:[UIImageimageNamed:@""] forState:UIControlStateNormalbarMetrics:UIBarMetricsDefault];

typedef enum {

   UIBarMetricsDefault,  //竖屏

   UIBarMetricsLandscapePhone,  横屏

} UIBarMetrics;

//设置在某个状态下segments的背景图片

[segment setTitleTextAttributes:dicforState:UIControlStateNormal];

 

NSString *const UITextAttributeFont;                       value: UIFont

NSString *constUITextAttributeTextColor;                value: UIColor

NSString *constUITextAttributeTextShadowColor;      value: UIColor

NSString *constUITextAttributeTextShadowOffset;     value: NSValue wrapping a UIOffset

   

NSDictionary *dic = [NSDictionarydictionaryWithObjectsAndKeys:[UIColorredColor],UITextAttributeTextColor,[UIFontfontWithName:@"SnellRoundhand-Bold" size:24],UITextAttributeFont,nil]; 

//设置标题的颜色 字体和大小 阴影和阴影颜色

 

 

6.显示控件

[parentViewaddSubview:mySegmentedControl];//添加到父视图 

   或 

  self.navigationItem.titleView = mySegmentedControl;//添加到导航栏 

 

7.读取控件

通过 selectedSegmentedIndex 属性,可以读取当前选中分段的值,这个值就是选中片段的索引号。

 

int x = mySegmentedControl.selectedSegmentedIndex;  

8.增加事件响应机制

监听的是这个事件:UIControlEventValueChanged,值改变事件

 

[segmentedControl   addTarget:self  action:@selector(itemClick)    forControlEvents:UIControlEventValueChanged];


//SegmentedControl触发的动作   

-(void)selected:(id)sender{ 

   UISegmentedControl* control = (UISegmentedControl*)sender; 

   switch (control.selectedSegmentIndex) { 

       case 0: 

           // 

           break; 

       case 1: 

           // 

           break; 

       case 2: 

           // 

           break; 

             

       default: 

           break; 

   } 

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值