UISegmentedControl

原创 2015年07月10日 09:48:30

控件是一种小型的、自包含的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 导航条上添加UISegmentedControl,点击分类按钮,显示不同的ViewController

UISegmentedControl的使用最近项目中需要用到UISegmentedControl,在导航条上添加一个UISegmentedControl,点击不同的按钮,显示不同的ViewContro...
  • ycf03211230
  • ycf03211230
  • 2017年01月05日 17:47
  • 2254

UISegmentedControl分段控制 跳转各界面

一、对于分段控件的三方插件有很多,个人在闲着的时候也就写了一个,适合初级的人员上手。 二、先谈一下思路: 整体的效果是 UISegmentedControl + UIView 做界面切换 创...
  • qq_16540651
  • qq_16540651
  • 2016年03月30日 14:03
  • 1914

[iOS学习]UISegmentControl的无边框形式如何设置

iOS中的分段选择控件UISegmentControl的设置,最终效果如上图。 代码如下://初始化一个UISegmentedControl控件test UISegmentedControl *tes...
  • Fantasy_Hy
  • Fantasy_Hy
  • 2016年01月13日 09:57
  • 3636

UISegmentedControl Demo代码

  • 2013年04月23日 11:34
  • 75KB
  • 下载

UISegmentedControl

  • 2016年07月27日 09:25
  • 66KB
  • 下载

用UISegmentedControl模拟TabbarController效果

  • 2012年11月27日 10:19
  • 39KB
  • 下载

自定义UISegmentedControl控件

  • 2016年08月09日 15:14
  • 25KB
  • 下载

Android仿iOS7的UISegmentedControl 分段

  • 2017年03月20日 17:24
  • 1.42MB
  • 下载

iphone 开发基础控件UISegmentedControl

  • 2012年10月05日 21:58
  • 500KB
  • 下载

iOS开发从入门到精通-- 步进器UIStepper和分栏控制器UISegmentedControl

步进器UIStepper和分栏控制器UISegmentedControl 具体效果图: 声明:#import @interface ViewController : UIViewControl...
  • android_it
  • android_it
  • 2016年07月20日 21:58
  • 1493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UISegmentedControl
举报原因:
原因补充:

(最多只允许输入30个字)