本文转载至 http://www.cnblogs.com/tx8899/archive/2012/06/05/2537020.html

添加分段控件

控件是一种小型的、自包含的UI组件,可以用在各种UI Kit类中。它们可以被附着在许多不同类型的对象之上,让开发者可以在窗口中添加额外的功能。有一个控件在苹果公司预装的应用程序的导航栏中经常见到,这就是分段控件。

你会注意到,在许多预置的应用程序中,苹果公司加入一些按钮以便对显示的信息做进一步分类。例如,iTunes WiFi Store应用程序的导航栏上就显示着"最新发行"、"热门金曲"、"风格流派"等按钮。这些按钮进一步划分了用户的乐曲选择方式。分段控件就适用于这种 情况:存在大量相似数据,最好用两到三个按钮对数据进行分类。

下面的例子配备了一个控件,令其显示"全部"与"未接"电话:

  1. UISegmentedControl *segmentedControl = [ [ UISegmentedControl alloc ]
  2. initWithItems: nil ];
  3. segmentedControl.segmentedControlStyle =
    UISegmentedControlStyleBar;
  4. [ segmentedControl insertSegmentWithTitle: 
    @"All" atIndex: 0 animated: NO ];
  5. [ segmentedControl insertSegmentWithTitle: 
    @"Missed" atIndex: 1 animated: NO ];

一旦你创建好分段控件之后,就可以将其赋予一个视图控制器的titleView导航属性,从而将其显示出来。这会使得标准的标题文字被替换成你的自定义视图:

  1. self.navigationItem.titleView = segmentedControl;

你应该还会希望这个类在用户选择新的分段时能立刻得到通知,以便让它可以随之改变,显示新的信息。要做到这一点,可以用UIControl类的addTarget方法来指定一个方法,在控件的值改变时去调用:

  1. [ segmentedControl addTarget: self
  2. action: @selector(controlPressed:)
  3. forControlEvents: UIControlEventValueChanged
  4. ];

在下面的例子中,一个名为controllerPressed的选择子被指定为在目标self中应得到通知的方法。请在你的目标类中编写这个例程,好处理值的变化:

  1. - (void) controllerPressed:(id)sender {
  2. int selectedIndex = [ segmentedControl selectedSegmentIndex ];
  3. /* 添加代码,处理值的变化 */
  4. }

分段控件中的每个按钮,都被称为一个段。调用控件自身的selectedSegment方法,就可以访问被选中的段:

    1. - (void) controllerPressed:(id)sender {
    2. int selectedSegment = segmentedControl.selectedSegmentIndex;
    3. NSLog(@"Segment %d selected\n", selectedSegment);
    4. }

IOS-添加分段控件SegmentControl的更多相关文章

  1. iOS:分段控件UISegmentedControl的详细使用

    分段控件:UISegmentedControl   功能:分段的控制.页面的切换等.   介绍:当用户输入不仅仅是布尔值时,可使用分段控件(UISegmentedControl).分段控件提供一栏按钮 ...

  2. UILabel iOS添加文本控件

    UILabel这是iOS控制,这是UIView子类,只有在UIView文字显示功能的基础上加入.UILabel还查看课程和UIView类别似     //1.创建一个视图对象     //2.配置视图 ...

  3. iOS系列 基础篇 09 开关、滑块和分段控件

    iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...

  4. 【UISegmentedControl】-  分段控件

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

  5. [Swift通天遁地]九、拔剑吧-(4)使用开源类库创建可滑动的Segment分段控件

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件

    转自:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...

  7. 无比迅速敏捷地开发iOS超精美控件

    目录 前言 设计 编码 PaintCode 前言 自从人生第一篇博客<iOS中的预编译指令的初步探究>问世以来 浏览量竟然达到了360多,(路过的大神勿笑!)这些浏览量使我兴奋异常但又令我 ...

  8. iOS基础UI控件介绍-Swift版

    iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...

  9. iOS基本UI控件总结

    包括以下几类: //继承自NSObject:(暂列为控件) UIColor *_color;    //颜色 UIImage *_image;    //图像 //继承自UIView:只能相应手势UI ...

随机推荐

  1. 【DB2】判断连续时间,如果间断则新增一条记录

    需求描述 例如:产品A01 2017-01-02到2017-01-03产品状态都是差,那么就是一条记录 但是在2017-01-04这天的状态不是差,到了5日这天又是差了 就是另外一条记录了 需求处理 ...

  2. ubuntu14.04使用root用户登录桌面,ubuntu14.04root 转

    ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...

  3. STL容器分析--stack

    stack,顾名思义,表示栈,先进后出.

  4. Redis 实例排除步骤

    Redis 应用案例 - 在问题中不断成长 原创 2017-02-05 杜亦舒  本文翻译整理自 Andy Grunwald 发布的一篇文章,写的是作者所在公司使用 Redis 时遇到的问题,以及处理 ...

  5. python得到今天前的七天每天日期

    import datetime d = datetime.datetime.now() def day_get(d): # 通过for 循环得到天数,如果想得到两周的时间,只需要把8改成15就可以了. ...

  6. mybatis想要在控制台显示sql语句配置文件

    在src目录下创建一个properties文件 配置内容如下 log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apach ...

  7. nekohtml转换html时标签变大写的问题

    public static Document transferByNeko(InputStream stream, String charset) { if (stream == null) retu ...

  8. SCUT个人整理的常见问题

    1.刚打开redis和服务端,测试时发现明显延时 刚开始会同步数据比较卡,需要进行一次操作才会同步.这个问题暂时没去研究 2.Server failed to start error:The mode ...

  9. 通过exists判断数据,并查找存在的数据

    ----通过exists判断数据,并查找存在的数据---以scott用户的emp 及dept表为例 select * from emp; select * from dept; ---查找emp表中的 ...

  10. hdu5745 La Vie en rose 巧妙地dp+bitset优化+滚动数组减少内存

    /** 题目:hdu5745 La Vie en rose 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5745 题意:题目给出的变换规则其实就是交换相邻 ...