文档章节

UISegmentedControl的详细使用

浪子艾菲儿
 浪子艾菲儿
发布于 2013/11/14 19:38
字数 682
阅读 2097
收藏 7

UISegmentedControl的详细使用

当用户输入不仅仅是布尔值时,可使用分段控件(UISegmentedControl)。分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。

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

    //初始化UISegmentedControl  

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

    segmentedControl.frame = CGRectMake(20.0, 20.0250.050.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.0120.030.030.0);  ;

    

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

    UILabel *titleForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(100.0160.030.030.0)];  

    titleForSegmentAtIndex.text = [segmentedControl titleForSegmentAtIndex:0];  

    

    //获取总选项数segmentedControl.numberOfSegments  

    UILabel *numberOfSegments = [[UILabel alloc]initWithFrame:CGRectMake(140.0170.030.030.0)];  

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

 

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

    UILabel *widthForSegmentAtIndex = [[UILabel alloc]initWithFrame:CGRectMake(180.0210.070.030.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];

转自:http://www.cnblogs.com/top5/archive/2012/05/17/2506618.html

本文转载自:http://www.cnblogs.com/top5/archive/2012/05/17/2506618.html

浪子艾菲儿
粉丝 45
博文 49
码字总数 13001
作品 0
海淀
程序员
私信 提问
UISegmentedControl的小知识

UISegmentedControl是分段控件,当用户输入的不仅仅是布尔值时,使用。分段控件提供一栏按钮,有时称按钮栏,但是只能激活其中一个按钮。分段控件会时用户在屏幕上看到的内容发生变化,常常用...

媛美一生
2015/11/24
15
0
常用UI控件之UIControl

1.UIControl概述 UIControl继承于UIView,其子类 有:UIButton,UITextField,UISegmentedControl(分段控件),UISlider (滑块控件),UISwitch(开关控件),UIPageControl(分页控件) 2.UISegmentedCo......

tuwangsheng
2014/04/27
0
0
iOS 切换视图--DVSwitch

DVSwitch 是可定制的,基于 UISwitch 和 UISegmentedControl 的控件,使用 Objective-C 编写。 DVSwitch 灵感来源于 UISwitch 和 UISegmentedControl,目标如下: 简单定制非常漂亮的动画控件...

叶秀兰
2014/10/21
531
0
Colorful SegmentedControl

如果UISegmentedControl是plain mode或者bordered mode,那么UISegmentedControl是无法改变颜色的,只能用默认的蓝色。这份代码就是能让UISegmentedControl在这两种模式下都能轻易自定义颜色...

匿名
2012/07/06
644
0
UI_06 UIControl及其子类

⼀、UISegmentedControl的使⽤ 分段控件。每个segment都能被点击,相当于集成了若干个button。 通常我们会点击不同的segment来切换不同的view。 1、常⽤⽅法和属性 initWithItems: //UISegme...

黑伞将军
2015/08/21
39
0

没有更多内容

加载失败,请刷新页面

加载更多

全面兼容IE6/IE7/IE8/FF的CSS HACK写法

浏览器市场的混乱,给设计师造成很大的麻烦,设计的页面兼容完这个浏览器还得兼容那个浏览器,本来ie6跟ff之间的兼容是很容易解决的。加上个ie7会麻烦点,ie8的出现就更头疼了,原来hack ie...

前端老手
13分钟前
3
0
常用快递电子面单批量打印api接口对接demo-JAVA示例

目前有三种方式对接电子面单: 1.快递公司:各家快递公司逐一对接接口 2.菜鸟:支持常用15家快递电子面单打印 3.快递鸟:仅对接一次,支持常用30多家主流快递电子面单打印 目前也是支持批量打...

程序的小猿
16分钟前
5
0
Yii 框架中rule规则必须搭配验证函数才能使用

public $store_id;public $user_id;public $page;public $limit;public $list;public $mch_list;public $cart_id;public $is_community;public $shop_id;public $cart_typ......

chenhongjiang
18分钟前
2
0
Flutter使用Rammus实现阿里云推送

前言: 最近新的Flutter项目有“阿里云推送通知”的需求,就是Flutter的App启动后检测到有新的通知,点击通知栏然后跳转到指定的页面。在这里我使用的是第三方插件Rammus来实现通知的推送,之...

EmilyWu
19分钟前
40
0
Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务

短网址顾名思义就是使用比较短的网址代替很长的网址。维基百科上面的解释是这样的: 短网址又称网址缩短、缩短网址、URL 缩短等,指的是一种互联网上的技术与服务,此服务可以提供一个非常短...

阿里巴巴云原生
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部