选取器被用来取代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. Monthly update for Dynamics 365 for Operation
  2. android sdk里的各目录作用
  3. mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...
  4. idea 启动 springBoot debug很慢,正常启动很快是什么原因
  5. SpringSecurity动态加载用户角色权限实现登录及鉴权
  6. linux看请求报文发送的ip,Linux C 实现最简单的ICMP_ECHO请求报文发送
  7. date命令 简单使用
  8. vue 事件调用 传参_高效开发小程序,Vue 和微信小程序的区别你该了解一下
  9. python中db是什么意思_Python3爬虫中MongoDB的存储操作是什么
  10. php仿bilibili视频类模板,高仿bilibili播放器
  11. 服务器个别目录下不能新建文件夹,域服务器不能创建sysvol和netlogon共享文件夹...
  12. 【技术分享】甲骨文首约DTCC 大秀数据库技术创新
  13. Matlab中hold函数使用
  14. 几种概率分布(伯努利分布、二项分布、泊松分布、均匀分布、正态分布、指数分布、伽马分布)
  15. linux nodemcu 编译,nodemcu固件编译
  16. 十款超高人气FTP客户端软件横评
  17. talib中的MACD指标用法总结【TA-lib的macd返回值的含义】
  18. STM32CubeMX | 基于STM32使用HAL库实现USB组合设备之多路CDC
  19. Flash芯片总述及SLC、MLC、TLC和QLC的区别
  20. 格式化分配单元大小_格式化时应将分配单位大小设置为什么?

热门文章

  1. linux Pci字符驱动基本加载流程
  2. C++:map和pair
  3. 能干什么_闲鱼流量系统能干什么?真的有用吗?
  4. 用手刻出计算机系统,一种计算机模拟手工雕刻制版的方法
  5. pads铺铜不能开启drp_PADS中常见问题解决方案
  6. Ripro子主题-ziyuan-zhankr资源主题 蓝色简约版
  7. 不锈钢厨房用品类织梦模板
  8. 黑鱼资源网完整版织梦整站源码打包分享
  9. 中国首个开源学校教务管理系统、网站布局自动化、学生/成绩/教师、成绩查询
  10. iis mysql_Windows10本地搭建IIS+PHP+MYSQL+phpMyAdmin运行环境图文教程(也可用于服务器)...