选取器被用来取代PC上面的下拉菜单,它是一个大大的滚轮,它占用固定的大小 320×216.

一、创建

大小虽然固定,但是位置可以任意(不过横向被充满,咱也只能改变纵向位置)。与UItableView 类似,UIpickerView 类也需要一个数据源。与表格视图不同的是,选取器不使用索引路径,而是用一个NSinteger 值来标识每一行。选取器可以有多个表盘,每个都可以,作为一个组件引用。

选取器视图使用代理作为数据源,因此数据源可以存在于另一个类或者视图控制器中。

UIPickerView* pickerView = [ [ UIpickerView alloc] initWithFrame:CGRectmake(0.0,100.0,0.0,0.0)];
pickerView.delegate = self;
pickerView.dataSource =  self;  

二、属性

恶心的苹果把许多属性保留为私有的,开放给开发者的少的可怜,可怜到唯一可用的外观选项就是选择窗口。

将选取器的 showsSelectionIndicator 属性设置为YES,可以在当前选择上显示一个透明窗口:

pickerView.showsSelectionIndicator = YES; 

三、数据源

创建好界面就要考虑数据源了。比必须实现下列数据源委托方法,这些方法是 UIPickerViewDataSource 协议的必要方法。

numberOfComponentsInPickerView

滚轮数量

numberOfRowsInComponent

为选取器中每个滚轮设置不同数目的行。这个方法返回指定滚轮的行数。

除此之外,UIPickerViewDelegate 协议还实现了下列方法,来获取选取器组件特定的信息。

titleForRow

返回对应滚轮(组件)的给定行的实际表盘取值。会以 NSString 对象返回这些值。

viewForRow

这个方法可以重写选取器显示组件表盘默认行为,令任何 UIView 类都可以在其中显示。

widthForComponet

返回给定组件(滚轮)的宽度。如果这方法未实现,选取器会自动调整到合适的宽度。

rowHeightComponent

返回给定组件(滚轮)的高度。如果这个方法未实现,选取器会自动调整到合适的高度。

四、显示

[self.view addSubview:pickerView ];

五、读取选取器

使用视图的selectedRowInComponent 方法,是获得选取器视图被选中列的索引的最直接的方法:

int selectedRow = [ pickerView  selectedRowInComponent:0 ];

也有一个委托方法,当用户选择了选取器中一行时,会收到通知。用这个方法可以向对象发出警报,这样它就可以对新行做出反应:

- (void)pickerView:(UIPickerView*)pickerView didSelectedRow:(NSInteger)row inComponent:(NSInteger)component{
/*添加代码,根据选中行尽享相应操作*/
}  

来源: http://blog.csdn.net/iukey/article/details/7327087

UIPickerView 选取器(滚轮)—IOS开发相关推荐

  1. UIDatePicker 日期/时间选取器(滚轮)—IOS开发

    UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...

  2. 使用 PDFkit 开发PDF阅读器( iOS 开发 / swift )

    使用 PDFkit 开发PDF阅读器(iOS 开发) 使用swift开发 结尾有百度网盘源码 注意:这里的 Class 要手敲 PDFView,如果在创建 Outlet 的时候再改会出错 主要注意可选 ...

  3. 重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口...

    原文:重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口 [源码下载] 重新想象 Windows 8 Store Apps (27) - ...

  4. 新手必看,史上最全的iOS开发教程集锦,没有之一!

    最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊.据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块" ...

  5. IOS学习六:Date Picker, Picker View选取器控件初步

    Date Picker控件和Picker View控件其实也是算比较常用到视图. 以下根据红柚子上得几个例子: 分别从(日期选取器)Date Picker   -->单部件选取器-->多部 ...

  6. IOS开发基础之图片轮播器-12

    IOS开发基础之图片轮播器-12 核心代码 // // ViewController.m // 12-图片轮播器 // // Created by 鲁军 on 2021/2/2. //#import ...

  7. 【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row

    这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己 ...

  8. iOS开发拓展篇—音频处理(音乐播放器3)

    iOS开发拓展篇-音频处理(音乐播放器3) 说明:这篇文章主要介绍音频工具类和播放工具类的封装. 一.控制器间数据传递 1.两个控制器之间数据的传递 第一种方法:self.parentViewCont ...

  9. iOS开发:音乐播放器

    /******************       iOS开发:音乐播放器     *****************/ 要求:给button一个触发事件,点击一下播放歌曲,显示暂停提示: 再点击一下 ...

最新文章

  1. 使用Python和OpenCV在图像之间执行超快速的颜色转换
  2. 这些Python常用的工具和学习资源你都知道么?
  3. java.util.Vector排序
  4. winform C#的委托事件在winform窗体中传值,也可用于刷新另一窗体(窗体A刷新窗体B)...
  5. jackson json转对象 对象转json
  6. Java高新技术第一篇:类加载器详解
  7. data model of Organization unit - Sales office
  8. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...
  9. 使用Visual Studio对项目重命名
  10. MSCRM plicklist 级联JS
  11. Adobe Reader X 10.1.0
  12. 新基建促进智能化基础设施管控平台的搭建
  13. 计算机id换系统会变吗,小雷问答丨手机恢复出厂设置后会变成最原始的系统吗?...
  14. celery英语,celery英语_celery什么意思_celery用法翻译_celery英语读音_解释 - 英语宝典...
  15. java尚硅谷 java基础第一个项目,记账软件
  16. Java学习简单画椭圆
  17. 泰山OFFICE技术讲座:字体属性的上标研究1:上标是什么
  18. STM32 PC13 PC14 PC15用作普通IO口
  19. 盒须图(Boxplot)
  20. 使用trash-cli给Linux服务器加一个回收站的功能

热门文章

  1. office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...
  2. MobileNet V2简单总结
  3. java cookie secure_Cookie的Secure属性
  4. C++/OpenCV:Error: Assertion failed ((unsigned)i0 < (unsigned)(size.p[0] * size.p[1]))
  5. MySQL:数据库导入
  6. k8s创建Deployment报错:missing required field “selector“ in io.k8s.api.apps.v1.DeploymentSpec
  7. 使用python将COCO格式的json文件转化为VOC格式的xml文件
  8. python时域信号特征提取(各种因子)
  9. java 指针 地址压缩_JVM优化之压缩普通对象指针(CompressedOops)
  10. java输入一行_用java编写从标准输入读入一行字符串,打印出其中所有的数字