当用户输入不不过布尔值时。可使用分段控件(UISegmentedControl)。分段控件提供一栏button(有时称为button栏),但只能激活当中一个button。

分段控件会导致用户在屏幕上看到的内容发生变化。

它们经常使用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。

以下介绍基本属性和基本方法的使用。

NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];

//初始化UISegmentedControl

UISegmentedControl *segmentedControl = [[UISegmentedControlalloc]initWithItems:segmentedArray];

segmentedControl.frame = CGRectMake(20.0, 20.0, 250.0, 50.0);

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

segmentedControl.tintColor = [UIColor redColor];

  //有基本四种样式

segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;//设置样式

//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBordered;//设置样式

//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;//设置样式

//segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;//设置样式

//  segmentedControl.momentary = YES;//设置在点击后是否恢复原样

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

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

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

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

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

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

//   [segmentedControl setContentOffset:CGSizeMake(10.0,10.0) forSegmentAtIndex:4];//设置选项中图片等的左上角的位置

//获取指定索引选项的图片imageForSegmentAtIndex:

UIImageView *imageForSegmentAtIndex = [[UIImageViewalloc]initWithImage:[segmentedControl imageForSegmentAtIndex:1]];

imageForSegmentAtIndex.frame = CGRectMake(60.0, 120.0, 30.0, 30.0); 
;

//获取指定索引选项的标题titleForSegmentAtIndex

UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0, 160.0, 30.0, 30.0)];

titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];

//获取总选项数segmentedControl.numberOfSegments

UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0, 170.0, 30.0, 30.0)];

numberOfSegments.text = [NSString stringWithFormat:@"%d",segmentedControl.numberOfSegments];

//获取指定索引选项的宽度widthForSegmentAtIndex:

UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0, 210.0, 70.0, 30.0)];

widthForSegmentAtIndex.text = [NSString stringWithFormat:@"%f",[segmentedControl widthForSegmentAtIndex:2]];

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

// BOOL enableFlag = [segmentedControl isEnabledForSegmentAtIndex:4];//推断指定索引选项是否可选

[mySegmentedControladdTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged];
 //加入托付方法

//详细托付方法实例

-(void)segmentAction:(UISegmentedControl *)Seg{

NSInteger Index = Seg.selectedSegmentIndex;

NSLog(@"Index %i", Index);

switch (Index) {

case 0:

[self selectmyView1];

break;

case 1:

[self selectmyView2];

break;

case 2:

[self selectmyView3];

break;

case 3:

[self selectmyView4];

break;

case 4:

[self selectmyView5];

break;

case 5:

[self selectmyView6];

break;

default:

break;

}

}

基本属性、方法如上,大家在实际开发中可依据实际需求选取适当属性和方法。

使用技巧:

在导航栏中加入UISegmentedControl ,实现的效果:

实现的代码:

//自己定义UISegmentedcontrol

UISegmentedControl *segmentedControl=[[UISegmentedControl alloc] initWithFrame:CGRectMake(80.0f, 8.0f, 200.0f, 30.0f) ]; 

    [segmentedControl insertSegmentWithTitle:@"Food to eat" atIndex:0 animated:YES]; 

    [segmentedControl insertSegmentWithTitle:@"Food to avoid" atIndex:1 animated:YES]; 

    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

    segmentedControl.momentary = YES; 

    segmentedControl.multipleTouchEnabled=NO; 

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

    UIBarButtonItem *segButton = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];  //自己定义UIBarButtonItem。封装定义好的UIsegmented。

    [segmentedControl release]; 

    self.navigationItem.rightBarButtonItem = segButton;  //加入到导航栏中

    [segButton release];

UISegmentedControl的具体使用的更多相关文章

  1. iOS在导航栏上居中显示分段控件(UISegmentedControl)

    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:nil]; segmentedCont ...

  2. 【UISegmentedControl】-  分段控件

    一.初始化 二.常见的属性 1.segmentedControlStyle属性:设置基本的样式 2.momentary属性:设置在点击后是否恢复原样 . 3.numberOfSegments属性:只读 ...

  3. UI控件(UISegmentedControl)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray* segmentArray = [[ ...

  4. UI第八节——UISegmentedControl

    - (void)viewDidLoad {    [super viewDidLoad];    NSArray *items = @[@"消息", @"电话" ...

  5. UISegmentedControl 的使用

    /** 设置选择器 */ - (void)setUpSegmentCtr { UISegmentedControl *segmentCtr = [[UISegmentedControl alloc] ...

  6. UISegmentedControl和UIStepper的使用

    UISegmentedControl:分栏控件,常用的属性和方法是 1.tintColor:控制分栏控件的颜色风格 2.insertSegmentWithTitle(Image):插入分栏标题(图片) ...

  7. UISegmentedControl 控件

    一.创建 UISegmentedControl* mySegmentedControl = [[UISegmentedControl alloc]initWithItems:nil]; 是不是很奇怪没 ...

  8. UI中一些不常用的控件UIActivityIndicatorView、UIProgressView、UISegmentedControl、UIStepper、UISwitch、UITextView、UIAlertController

    //UIActivityIndicatorView //小菊花,加载 #import "ActivityIndicatorVC.h" @interface ActivityIndi ...

  9. UISegmentedControl(人物简介)

    效果图 当你点击上面人物名字的时候 ,就可以随意切换人物. 这个很有趣 , 你还可以试着添加音乐播放器 .以及一些别的来完善你想做的. 好吧 , 废话不多说 , 上代码. #import " ...

  10. UILabel UISwitch UISegmentedControl UIAlertView

    基础小控件 /***************************************UIlabel*************************************/ UILabel ...

随机推荐

  1. BZOJ 2243:染色(树链剖分+区间合并线段树)

    [SDOI2011]染色Description给定一棵有n个节点的无根树和m个操作,操作有2类:1.将节点a到节点b路径上所有点都染成颜色c:2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认 ...

  2. centos6.5 mysql忘记登入密码

    1.修改文件目录为/etc/my.cnf的文件; 在[mysqld]的段中加上一句:skip-grant-tables,保存文件重启数据库: 例如: [mysqld] skip-grant-table ...

  3. [NOI2014][bzoj3670] 动物园 [kmp+next数组应用]

    题面 传送门 思路 首先,这题最好的一个地方,在于它给出的关于$next$的讲解实在是妙极......甚至可以说我的kmp是过了这道题以后才脱胎换骨的 然后是正文: 如何求$num$数组? 这道题的输 ...

  4. python 读取文件夹下的图片进行处理

    python的os模块中有一个listdir函数可以遍历读取文件夹下的文件. import os for filename in os.listdir(r"./file"): #l ...

  5. TCP面试题之为什么会有TIME_WAIT状态

    1.确保有足够的时间让对方收到ACK包:(一来一去刚好是2MSL) 2.避免新旧连接混淆 MSL(最大报文段的生成时间)在RFC793中规定hi2分钟,实际应用是30秒,1分钟,2分钟等:

  6. Static 静态内部类

    Java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态的. java允许我们在一个类里面定义静态类.比如内部类(nested class) ...

  7. Docker Daemon 连接方式详解

    前言 在 Docker 常用详解指令 一文中粗粗提了一下, Docker 是分为客户端和服务端两部分的, 本文将介绍客户端是如何连接服务端的. 连接方式 1. UNIX域套接字 默认就是这种方式, 会 ...

  8. BZOJ 2146 Construct

    Construct [问题描述] 随着改革开放的深入推进…… 小T家要拆迁了…… 当对未来生活充满美好憧憬的小T看到拆迁协议书的时候,小T从一位大好的社会主义青年变成了绝望的钉子户. 由于小T的家位于 ...

  9. case when then else 详解

    原文发布时间为:2008-10-15 -- 来源于本人的百度文章 [由搬家工具导入] sql语句判断方法之一 Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE ...

  10. BootLoader的一些知识

    在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境.在嵌入 ...