博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS-添加分段控件SegmentControl
阅读量:4578 次
发布时间:2019-06-08

本文共 1441 字,大约阅读时间需要 4 分钟。

添加分段控件

控件是一种小型的、自包含的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. }

转载于:https://www.cnblogs.com/tx8899/archive/2012/06/05/2537020.html

你可能感兴趣的文章
C++ string int 转换 split
查看>>
axure 导入元件库显示不出白框_猿型库:Axure小练习之自定义下拉框
查看>>
两个集合相减怎么算_你家使用的防火窗(耐火窗)质量合格吗?怎么判断好坏呢?...
查看>>
ue4加载本地图片_UE4引擎初始化原理详细讲解
查看>>
python整数作为条件_Python整数类型(int)详解
查看>>
pta简单实现x的n次方_c语言第二次作业pta..docx
查看>>
【Entity Framework】Model First Approach
查看>>
C# DataTable删除行Delete与Remove的问题
查看>>
HDU2586How far away? LCA
查看>>
网络流 - 最大流
查看>>
随手记note(记事簿)
查看>>
JRE System Library 与Java EE Libraries的区别
查看>>
颜色分类函数
查看>>
Oracle数据泵详解
查看>>
(中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。
查看>>
sort-归并排序
查看>>
django 快速实现完整登录系统(cookie)
查看>>
.NET中的out和ref关键字
查看>>
Python之ftp服务器
查看>>
KMP预处理
查看>>