ios开发--UISegmentedControl分段

来源:互联网 发布:js获取div的name属性 编辑:程序博客网 时间:2024/06/05 04:36

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; 

   } 

}


0 0
原创粉丝点击