1.segmentedControlStyle

设置segment的显示样式。

typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {

UISegmentedControlStylePlain,     // large plain 系统默认平板样式

segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;

UISegmentedControlStyleBordered,  // large bordered 黑边样式

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;

UISegmentedControlStyleBar,       // small button/nav bar style. Tintable 条状样式

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;

UISegmentedControlStyleBezeled,   // DEPRECATED. Do not use this style. 这个类型不要使用,用了会报错喔。

};

2.tintColor 渐变颜色

Default tintColor is nil. Only used if style is UISegmentedControlStyleBar

默认空,只有使用UISegmentedControlStyleBar,才能设置渐变颜色。

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;

segmentedControl.tintColor = [UIColor redColor];

效果:

3.momentary 设置在点击后是否恢复原样

默认为NO

segmentedControl.momentary = No;

点击之后效果:

segmentedControl.momentary = YES;

点击之后效果:

4. numberOfSegments(只读)

获取总选项数segmentedControl.numberOfSegments

5. selectedSegmentIndex

用来设置选中项或者返回选中项。

segmentedControl.selectedSegmentIndex = 2;//设置默认选择项索引

segmentedControl.selectedSegmentIndex // 获取选中项

6.- (void)setTitle:(NSString *)title forSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setTitle:@"two" forSegmentAtIndex:1];//设置指定索引的题目

效果:

7. - (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setImage:[UIImage imageNamed:@"lan.png"] forSegmentAtIndex:3];//设置指定索引的图片

8.-(void)insertSegmentWithTitle:(NSString*)title atIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl insertSegmentWithTitle:@"add" atIndex:3 animated:NO];//在指定索引插入一个选项并设置题目

效果:

9.-(void)insertSegmentWithImage:(UIImage *)image  atIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2 animated:NO];//在指定索引插入一个选项并设置图片

10.- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;

[segmentedControl removeSegmentAtIndex:0 animated:NO];//移除指定索引的选项

效果:

11. - (void)removeAllSegments;

//移除所有选项

[segmentedControl removeAllSegments];

12. - (void)setWidth:(CGFloat)width forSegmentAtIndex:(NSUInteger)segment;         // set to 0.0 width to autosize. default is 0.0

选项卡的宽度默认为0,此方法能够设置选项卡宽度。

[segmentedControl setWidth:70.0 forSegmentAtIndex:2];//设置指定索引选项的宽度

效果:

13. - (void)setContentOffset:(CGSize)offset forSegmentAtIndex:(NSUInteger)segment; // adjust offset of image or text inside the segment. default is (0,0)

[segmentedControl setContentOffset:CGSizeMake(10,0) forSegmentAtIndex:1];

设置选项卡内部文字或者图片与默认位置的偏移量,默认位置在选项卡的中心。

效果:

14. - (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;

[segmentedControl setEnabled:NO forSegmentAtIndex:4];//设置指定索引选项不可选

15.增加事件响应机制

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

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

初始化UISegmentedControl

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

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

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

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

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

//设置frame

 

管理Segment的内容

[segment setTitle:@"大便" forSegmentAtIndex:3]; 

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

[segment setImage:[UIImage imageNamed:@"3"] forSegmentAtIndex:4];

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

 

管理Segments

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

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

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

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

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

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

 

管理Segment的行为和外观   

segment.momentary = NO;

//默认为NO 当设置为YES时,当被选中后,一会儿后不显示被选中状态(最左边的样子),不选中状态即下图的右边几个按钮一样


segment.segmentedControlStyle = UISegmentedControlStyleBar;

typedef enum {
   UISegmentedControlStylePlain,
   UISegmentedControlStyleBordered,
   UISegmentedControlStyleBar,
   UISegmentedControlStyleBezeled,
} UISegmentedControlStyle;

//设置样式 当为Bordered和Bar时tintColor才有效 下图为tintcolor为红色时的样子

//Bar样式

//Bordered

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

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

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

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

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

自定义外观

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

[segment setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

typedef enum {
    UIBarMetricsDefault,  //竖屏
    UIBarMetricsLandscapePhone,  横屏
} UIBarMetrics;

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

[segment setTitleTextAttributes:dic forState:UIControlStateNormal];

NSString *const UITextAttributeFont;                       value: UIFont
NSString *const UITextAttributeTextColor;                 value: UIColor
NSString *const UITextAttributeTextShadowColor;       value: UIColor
NSString *const UITextAttributeTextShadowOffset;      value: NSValue wrapping a UIOffset
    
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor,[UIFont fontWithName:@"SnellRoundhand-Bold" size:24],UITextAttributeFont ,nil];

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

[segment addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged];

//当选中不同的segment时,会执行change:方法

segment的更多相关文章

  1. kafka的log存储解析——topic的分区partition分段segment以及索引等

    转自:http://blog.csdn.net/jewes/article/details/42970799 引言 Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相 ...

  2. ORA-10635: Invalid segment or tablespace type

    上周星期天在迁移数据时,碰到了ORA-10635: Invalid segment or tablespace type 错误,当时的操作环境如下: 操作系统版本: [oracle@xxxxx scr ...

  3. Oracle逻辑结构(TableSpace→Segment→Extent→Block)

    一.逻辑体系结构图 二.逻辑结构图组成介绍 从上表可以看出,一个数据库是由多个表空间(tablespace)组成,一个表空间又由多个段(segment)组成,一个段又由多个区(extent)组成,一个 ...

  4. IOS开发--自定义segment控件,方便自定义样式

    系统的segment控件太封闭,想换个颜色加个背景太难了,忍不住自己写一个,以备不时之需 这个控件给出了很多自定义属性的设置,用起来还是比较方便的,需要注意的 itemWidth如果不设置,则会按照控 ...

  5. 填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT

    填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT 警告:发生了重入! 解释:在主循环里调用了一个函数,而在中断服务中又一次调用了同样的函数.当主循环运行到该函数中 ...

  6. c程序中出现segment error 和 bus error 的原因

    在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...

  7. 【BZOJ-3165】Segment 李超线段树(标记永久化)

    3165: [Heoi2013]Segment Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 368  Solved: 148[Submit][Sta ...

  8. BestCoder#16 A-Revenge of Segment Tree

    Revenge of Segment Tree Problem Description In computer science, a segment tree is a tree data struc ...

  9. [LintCode] Segment Tree Build II 建立线段树之二

    The structure of Segment Tree is a binary tree which each node has two attributes startand end denot ...

  10. [LintCode] Segment Tree Build 建立线段树

    The structure of Segment Tree is a binary tree which each node has two attributes start and end deno ...

随机推荐

  1. post和get的区别?

    1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...

  2. UTF-8和GBK有什么区别?

    字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码.对于英文字符 ...

  3. Objective-C和C++的区别

    1.都是有C语言延伸而来2.OC是完全动态的,C++是部分动态的3.OC不支持多继承,通过代理 类别 协议优雅的实现了相关的一系列特性4.调用机制不同OC里面叫发送消息  C++叫做调用函数数5.OC ...

  4. jq 图片上传

    1.html <input type="file" class="ImgInput" name="ImgInput"/> 2.j ...

  5. 从零开始学java(猜数字游戏)

    练练手不喜勿喷,看到什么学习什么第一次发博客格式就见见谅.....                                            2016-07-21 19:55:02 imp ...

  6. java基础之反射机制

    一.概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为jav ...

  7. Vijos1825 NOI2008 志愿者招募 费用流

    Orz ByVoid大神的题解:https://www.byvoid.com/blog/noi-2008-employee/ 学习网络流建图的好题,不难想到线性规划的模型,不过利用模型的特殊性,结合网 ...

  8. SGU 207.Robbers

    题意: 有m(m<=10^4)个金币分给n(n<=1000)个人,第i个人期望得到所有金币的xi/y,现在给分给每个人一些金币ki使得∑|xi/y-ki/m|最小. Solution: 首 ...

  9. vim技巧和坑

    VIM的匹配替换功能很快很强大,但是要显示匹配个数就很苦情,要绕个弯子实现:%s/xxx//gn关键是最后的n,代表只报告匹配的个数,而不进行实际的替换. vim v5 强大.. 另外,如果你习惯了w ...

  10. linux之uniq

    Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行.在正常情况下,第二个及以后更多个重复行将被删去,行 比较是根据所用字符集的排序序列进行的.该命令加工后的结 ...