UIPickerView(选择控制器) 自学之初体验
UIPickerView 是一个选择器控件, 它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。UIPickerView 直接继承了 UIView ,没有继承 UIControl ,因此,它不能像 UIControl 那样绑定事件处理方法, UIPickerView 的事件处理由其委托对象完成。
UIPickerView 控件常用的属性和方法如下:
numberOfComponents: 获取UIPickerView指定列中包含的列表项的数量。该属性是一个只读属性。
showsSelectionIndicator: 该属性控制是否显示UIPickerView中的选中标记(以高亮背景作为选中标记)。
numberOfRowsInComponent: 获取UIPickerView包含的列数量。
rowSizeForComponent: 获取UIPickerView包含的指定列中列表项的大小。该方法返回一个CGSize对象。
selectRow:inComponent:animated:: 该方法设置选中该UIPickerView中指定列的特定列表项。最后一个参数控制是否使用动画。
selectedRowInComponent:: 该方法返回该UIPickerView指定列中被选中的列表项。
viewForRow:forComponent:: 该方法返回该UIPickerView指定列的列表项所使用的UIView控件。
UIDatePicker控件只是负责该控件的通用行为,而该控件包含多少列,各列包含多少个列表项则由UIPickerViewDataSource对象负责。开发者必须为UIPickerView设置UIPickerViewDataSource对象,并实现如下两个方法。
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
该UIPickerView将通过该方法来判断应该包含多少列。
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
该UIPickerView将通过该方法判断指定列应该包含多少个列表项。
如果程序需要控制UIPickerView中各列的宽度,以及各列中列表项的大小和外观,或程序需要为UIPickerView的选中事件提供响应,都需要为UIPickerView设置UIPickerViewDelegate委托对象,并根据需要实现该委托对象中的如下方法。
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
该方法返回的CGFloat值将作为该UIPickerView控件中指定列中列表项的高度。
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
该方法返回的CGFloat值将作为该UIPickerView控件中指定列的宽度。
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
该方法返回的NSString值将作为该UIPickerView控件中指定列的列表项的文本标题。
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
该方法返回的UIView控件将直接作为该UIPickerView控件中指定列的指定列表项。
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
当用户单击选中该UIPickerView控件的指定列的指定列表项时将会激发该方法
通过一个小的省市区的编写,熟悉了解;
1,在ViewController的.h文件中声明一个属性:

2.在ViewController的.m文件中声明:

并遵循两个协议
3.将省市区初始化数据

4,设置_picker的相关内容属性等:

5,实现UIPickerViewDataSource协议规定的方法

6,实现UIPickerViewDelegate中的方法,对事件的处理和字符串的改变

最终效果图:

UIPickerView(选择控制器) 自学之初体验的更多相关文章
- UIAlertController(警告栏)  自学之初体验
		
UIAlertController有两种样式 preferredStyle: UIAlertControllerStyleAlert (位于屏幕的中部) UIAlertControllerStyle ...
 - python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
		
python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...
 - .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
		
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
 - Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
		
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
 - Spring之初体验
		
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
 - Xamarin.iOS开发初体验
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
 - 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
		
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
 - 【Knockout.js 学习体验之旅】(1)ko初体验
		
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
 - 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
		
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
 
随机推荐
- CSS筛选器简单实例1
			
1.通配符 <!--筛选器---通配符实例--> <!--支持IE7+ --> <style type="text/css"> *.all { ...
 - C#鼠标键盘钩子
			
using System;using System.Collections.Generic; using System.Reflection; using System.Runtime.Interop ...
 - eclipse中多个工程编译到同一个目录下
			
1.点击link source 2.选择Java(ps:Java文件目录)或者resource(ps:配置文件目录) 3.最后结果,然后使用project中的clean进行编译,就可以把两个工程编 ...
 - SqlServer日期查询
			
一.sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返 ...
 - 【solr基础教程之九】客户端
			
一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...
 - EXW_FOB_CIF_CFR 外贸报价方式&条款之间的区别与联系
			
一.工厂交货价(EXW=Ex Works): 交货地点:出口国工厂或仓库: 运 输:买方负责: 保 险:买方负责: 出口手续:买方负责: 进口手续:买方负责: 风险转移:交货地: 所有权转 ...
 - libevent for qt网络模块
			
libevent for qt网络模块,直接替换qt的select模型,支持epoll,select,pool.使用非常简单,无需修改以前的代码结构 最近在开发im服务器,需要大并发链接.QT默认的是 ...
 - C# 委托2
			
委托的定义: (1) 将方法作为变量使用的一种机制,就是将方法当作变量用(声明,赋值,传参) (2) 将变量当作方法来用,首先就要去声明变量,就要考虑变量的类型,就是(委托变量,对应方法的返回值, ...
 - codeforce343A
			
题目地址:http://codeforces.com/problemset/problem/343/A 比赛的时候就囧了,只推出a<b的时候最少需要b个电阻. 后来看了题解,知道 题意:用最少的 ...
 - Kth Smallest Element in Unsorted Array
			
(referrence: GeeksforGeeks, Kth Largest Element in Array) This is a common algorithm problem appeari ...