iOS开发-UI控件:添加分段控件SegmentControl
2016-03-03 14:39
495 查看
文章转自: http://www.cnblogs.com/tx8899/archive/2012/06/05/2537020.html
添加分段控件
控件是一种小型的、自包含的UI组件,可以用在各种UI Kit类中。它们可以被附着在许多不同类型的对象之上,让开发者可以在窗口中添加额外的功能。有一个控件在苹果公司预装的应用程序的导航栏中经常见到,这就是分段控件。
你会注意到,在许多预置的应用程序中,苹果公司加入一些按钮以便对显示的信息做进一步分类。例如,iTunes WiFi Store应用程序的导航栏上就显示着"最新发行"、"热门金曲"、"风格流派"等按钮。这些按钮进一步划分了用户的乐曲选择方式。分段控件就适用于这种 情况:存在大量相似数据,最好用两到三个按钮对数据进行分类。
下面的例子配备了一个控件,令其显示"全部"与"未接"电话:
UISegmentedControl *segmentedControl = [ [ UISegmentedControl alloc ]
initWithItems: nil ];
segmentedControl.segmentedControlStyle =
UISegmentedControlStyleBar;
[ segmentedControl insertSegmentWithTitle:
@"All" atIndex: 0 animated: NO ];
[ segmentedControl insertSegmentWithTitle:
@"Missed" atIndex: 1 animated: NO ];
一旦你创建好分段控件之后,就可以将其赋予一个视图控制器的titleView导航属性,从而将其显示出来。这会使得标准的标题文字被替换成你的自定义视图:
self.navigationItem.titleView = segmentedControl;
你应该还会希望这个类在用户选择新的分段时能立刻得到通知,以便让它可以随之改变,显示新的信息。要做到这一点,可以用UIControl类的addTarget方法来指定一个方法,在控件的值改变时去调用:
[ segmentedControl addTarget: self
action: @selector(controlPressed:)
forControlEvents: UIControlEventValueChanged
];
在下面的例子中,一个名为controllerPressed的选择子被指定为在目标self中应得到通知的方法。请在你的目标类中编写这个例程,好处理值的变化:
- (void) controllerPressed:(id)sender {
int selectedIndex = [ segmentedControl selectedSegmentIndex ];
/* 添加代码,处理值的变化 */
}
分段控件中的每个按钮,都被称为一个段。调用控件自身的selectedSegment方法,就可以访问被选中的段:
- (void) controllerPressed:(id)sender {
int selectedSegment = segmentedControl.selectedSegmentIndex;
NSLog(@"Segment %d selected\n", selectedSegment);
}
添加分段控件
控件是一种小型的、自包含的UI组件,可以用在各种UI Kit类中。它们可以被附着在许多不同类型的对象之上,让开发者可以在窗口中添加额外的功能。有一个控件在苹果公司预装的应用程序的导航栏中经常见到,这就是分段控件。
你会注意到,在许多预置的应用程序中,苹果公司加入一些按钮以便对显示的信息做进一步分类。例如,iTunes WiFi Store应用程序的导航栏上就显示着"最新发行"、"热门金曲"、"风格流派"等按钮。这些按钮进一步划分了用户的乐曲选择方式。分段控件就适用于这种 情况:存在大量相似数据,最好用两到三个按钮对数据进行分类。
下面的例子配备了一个控件,令其显示"全部"与"未接"电话:
UISegmentedControl *segmentedControl = [ [ UISegmentedControl alloc ]
initWithItems: nil ];
segmentedControl.segmentedControlStyle =
UISegmentedControlStyleBar;
[ segmentedControl insertSegmentWithTitle:
@"All" atIndex: 0 animated: NO ];
[ segmentedControl insertSegmentWithTitle:
@"Missed" atIndex: 1 animated: NO ];
一旦你创建好分段控件之后,就可以将其赋予一个视图控制器的titleView导航属性,从而将其显示出来。这会使得标准的标题文字被替换成你的自定义视图:
self.navigationItem.titleView = segmentedControl;
你应该还会希望这个类在用户选择新的分段时能立刻得到通知,以便让它可以随之改变,显示新的信息。要做到这一点,可以用UIControl类的addTarget方法来指定一个方法,在控件的值改变时去调用:
[ segmentedControl addTarget: self
action: @selector(controlPressed:)
forControlEvents: UIControlEventValueChanged
];
在下面的例子中,一个名为controllerPressed的选择子被指定为在目标self中应得到通知的方法。请在你的目标类中编写这个例程,好处理值的变化:
- (void) controllerPressed:(id)sender {
int selectedIndex = [ segmentedControl selectedSegmentIndex ];
/* 添加代码,处理值的变化 */
}
分段控件中的每个按钮,都被称为一个段。调用控件自身的selectedSegment方法,就可以访问被选中的段:
- (void) controllerPressed:(id)sender {
int selectedSegment = segmentedControl.selectedSegmentIndex;
NSLog(@"Segment %d selected\n", selectedSegment);
}
相关文章推荐
- UIButton浅析,图片在右,文字在左
- RequireJS示例
- 关于SAP ui 5框架的理解
- GUI.BeginGroup GUI.EndGroup ()群组视图
- [UE4]自定义MovementComponent组件
- UIImage修改图片颜色
- // 去掉UItableview headerview黏性(sticky)
- iPhone/iPad/Android UI尺寸规范
- RequireJS(二)
- RequireJS介绍(一)
- 4. JPA @Id 和 @GeneratedValue 注解详解
- QuickFix/J (2): 消息的接收和发送
- php安装报错:PHP configure: error: build test failed. Please check the config.log
- Android Stuido Ndk-Jni 开发(五):Jni回调java静态方法和非静态方法
- PHP中include和require的区别
- Android中的Handler、Looper和MessageQueue的使用以及原理
- UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题
- 自己CA脚本
- kubernetes集群中部署kube-ui