UIPickerView 选取器(滚轮)—IOS开发
2013-02-26 10:00
423 查看
选取器被用来取代PC上面的下拉菜单,它是一个大大的滚轮,它占用固定的大小 320×216.
一、创建
大小虽然固定,但是位置可以任意(不过横向被充满,咱也只能改变纵向位置)。与UItableView 类似,UIpickerView 类也需要一个数据源。与表格视图不同的是,选取器不使用索引路径,而是用一个NSinteger 值来标识每一行。选取器可以有多个表盘,每个都可以,作为一个组件引用。
选取器视图使用代理作为数据源,因此数据源可以存在于另一个类或者视图控制器中。
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
UIPickerView* pickerView = [ [ UIpickerView alloc] initWithFrame:CGRectmake(0.0,100.0,0.0,0.0)];
pickerView.delegate = self;
pickerView.dataSource = self;
二、属性
恶心的苹果把许多属性保留为私有的,开放给开发者的少的可怜,可怜到唯一可用的外观选项就是选择窗口。
将选取器的 showsSelectionIndicator 属性设置为YES,可以在当前选择上显示一个透明窗口:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
pickerView.showsSelectionIndicator = YES;
三、数据源
创建好界面就要考虑数据源了。比必须实现下列数据源委托方法,这些方法是 UIPickerViewDataSource 协议的必要方法。
numberOfComponentsInPickerView
滚轮数量
numberOfRowsInComponent
为选取器中每个滚轮设置不同数目的行。这个方法返回指定滚轮的行数。
除此之外,UIPickerViewDelegate 协议还实现了下列方法,来获取选取器组件特定的信息。
titleForRow
返回对应滚轮(组件)的给定行的实际表盘取值。会以 NSString 对象返回这些值。
viewForRow
这个方法可以重写选取器显示组件表盘默认行为,令任何 UIView 类都可以在其中显示。
widthForComponet
返回给定组件(滚轮)的宽度。如果这方法未实现,选取器会自动调整到合适的宽度。
rowHeightComponent
返回给定组件(滚轮)的高度。如果这个方法未实现,选取器会自动调整到合适的高度。
四、显示
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
[self.view addSubview:pickerView ];
五、读取选取器
使用视图的selectedRowInComponent 方法,是获得选取器视图被选中列的索引的最直接的方法:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
int selectedRow = [ pickerView selectedRowInComponent:0 ];
也有一个委托方法,当用户选择了选取器中一行时,会收到通知。用这个方法可以向对象发出警报,这样它就可以对新行做出反应:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
- (void)pickerView:(UIPickerView*)pickerView didSelectedRow:(NSInteger)row inComponent:(NSInteger)component{
/*添加代码,根据选中行尽享相应操作*/
}
来源: /article/1425961.html
一、创建
大小虽然固定,但是位置可以任意(不过横向被充满,咱也只能改变纵向位置)。与UItableView 类似,UIpickerView 类也需要一个数据源。与表格视图不同的是,选取器不使用索引路径,而是用一个NSinteger 值来标识每一行。选取器可以有多个表盘,每个都可以,作为一个组件引用。
选取器视图使用代理作为数据源,因此数据源可以存在于另一个类或者视图控制器中。
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
UIPickerView* pickerView = [ [ UIpickerView alloc] initWithFrame:CGRectmake(0.0,100.0,0.0,0.0)];
pickerView.delegate = self;
pickerView.dataSource = self;
UIPickerView* pickerView = [ [ UIpickerView alloc] initWithFrame:CGRectmake(0.0,100.0,0.0,0.0)]; pickerView.delegate = self; pickerView.dataSource = self;
二、属性
恶心的苹果把许多属性保留为私有的,开放给开发者的少的可怜,可怜到唯一可用的外观选项就是选择窗口。
将选取器的 showsSelectionIndicator 属性设置为YES,可以在当前选择上显示一个透明窗口:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
pickerView.showsSelectionIndicator = YES;
pickerView.showsSelectionIndicator = YES;
三、数据源
创建好界面就要考虑数据源了。比必须实现下列数据源委托方法,这些方法是 UIPickerViewDataSource 协议的必要方法。
numberOfComponentsInPickerView
滚轮数量
numberOfRowsInComponent
为选取器中每个滚轮设置不同数目的行。这个方法返回指定滚轮的行数。
除此之外,UIPickerViewDelegate 协议还实现了下列方法,来获取选取器组件特定的信息。
titleForRow
返回对应滚轮(组件)的给定行的实际表盘取值。会以 NSString 对象返回这些值。
viewForRow
这个方法可以重写选取器显示组件表盘默认行为,令任何 UIView 类都可以在其中显示。
widthForComponet
返回给定组件(滚轮)的宽度。如果这方法未实现,选取器会自动调整到合适的宽度。
rowHeightComponent
返回给定组件(滚轮)的高度。如果这个方法未实现,选取器会自动调整到合适的高度。
四、显示
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
[self.view addSubview:pickerView ];
[self.view addSubview:pickerView ];
五、读取选取器
使用视图的selectedRowInComponent 方法,是获得选取器视图被选中列的索引的最直接的方法:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
int selectedRow = [ pickerView selectedRowInComponent:0 ];
int selectedRow = [ pickerView selectedRowInComponent:0 ];
也有一个委托方法,当用户选择了选取器中一行时,会收到通知。用这个方法可以向对象发出警报,这样它就可以对新行做出反应:
C代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/4634e5a695985ec0a1e54fe61e36eb34.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201409/925a194438bdd6e4bf6c89525734f9cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201308/b3bc1fa49723fb763a93f93e0983efd1.gif)
- (void)pickerView:(UIPickerView*)pickerView didSelectedRow:(NSInteger)row inComponent:(NSInteger)component{
/*添加代码,根据选中行尽享相应操作*/
}
- (void)pickerView:(UIPickerView*)pickerView didSelectedRow:(NSInteger)row inComponent:(NSInteger)component{ /*添加代码,根据选中行尽享相应操作*/ }
来源: /article/1425961.html
相关文章推荐
- UIPickerView 选取器(滚轮)—IOS开发
- UIPickerView 选取器(滚轮)—IOS开发
- UIPickerView 选取器(滚轮)—IOS开发
- iOS开发问题----UIPickerView判断时候正在滑动的问题(检测“滚轮”启动和停止)
- UIPickerView 选取器(滚轮)—IOS开发
- UIPickerView 选取器(滚轮)—IOS开发
- UIPickerView 选取器(滚轮)—IOS开发
- iOS开发11:UIPickerView控件(1)
- 详解iOS开发中UIPickerView控件的使用方法
- iOS开发系列之常用自定义控件开发集—自定义UIPickerView控件开发2
- ios开发 之 UIPickerView控件,UI关联选择项如何处理
- iOS开发--UIPickerView的动画效果
- iOS开发-UI控件:UIDatePicker日期/时间选取器(滚轮)
- iOS开发--PickView 选取器笔记
- iOS开发11:UIPickerView控件(1)
- iOS开发--UIPickerView(选择器控件) 省份和城市的做法
- iOS中动态密码(倒计时按钮)按钮Block封装,选取器(UIPickerView)的Block封装,日期选取器(UIDatePicker)的Block封装
- iOS开发:UIPickerView控件
- iOS开发:UIPickerView控件
- iOS开发:UIPickerView控件