选择器控件UIPickerView:

功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据。例如创建日历、字体表(类型、大小、颜色)、图库等.
 
它是UIView视图的子类,而且遵从UIPickerViewDelegate协议和UIPickerViewDataSource协议。因此,选择器需要设置代理去进行操作;
设置视图控制器self为数据源代理和数据操作代理,即
@property(strong,nonatomic)UIPickerView *pickerView;
self.pickerView.dataSource = self;
self.pickerView.delegate  = self;
 
一、具体类信息:

@protocol UIPickerViewDataSource, UIPickerViewDelegate;

@interface UIPickerView : UIView <NSCoding>

@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource; // default is nil,设置代理

@property(nonatomic,assign) id<UIPickerViewDelegate>   delegate;  // default is nil,设置代理

@property(nonatomic)  BOOL showsSelectionIndicator;    // default is NO

@property(nonatomic,readonly) NSInteger numberOfComponents; //列数

二、协议UIPickerViewDataSource

@protocol UIPickerViewDataSource<NSObject>

@required //必须要实现的方法

// 返回的列显示的数量。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;

//返回行数在每个组件(每一列)

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

@end

三、协议UIPickerViewDelegate

@protocol UIPickerViewDelegate<NSObject>

@optional //可以选择执行的方法

//每一列组件的列宽度

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;

//每一列组件的行高度

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;

// 返回每一列组件的每一行的标题内容

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;

// 返回每一列组件的每一行的标题内容的属性

- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component;

// 返回每一列组件的每一行的视图显示

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;

//执行选择某列某行的操作

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

@end

 
   
演示一:制作简单的万年历,一开始就显示当前日期
源码如下:
1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
4 @property(nonatomic,strong)NSArray *years;
5 @property(nonatomic,strong)NSArray *months;
6 @property(nonatomic,strong)NSArray *days;
7
8 @end

 View Code

演示二:制作简单的字体表,包括字体类型、大小、颜色

源码如下:

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
4 @property(nonatomic,strong) NSArray *fontNames;
5 @property(nonatomic,strong) NSArray *fontSizes;
6 @property(nonatomic,strong) NSArray *fontColors;
7 @end

 View Code

  

演示三:制作简单的图库浏览器

源码如下:

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIPickerViewDelegate,UIPickerViewDataSource>
@end

 View Code

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4767710.html,如需转载请自行联系原作者

iOS:选择器控件UIPickerView的详解和演示相关推荐

  1. 布局中文件中【控件间距参数详解以及单位选择】

    注意:例如:android:layout_gravity和android:gravity的区别: android:layout_gravity:此控件相对父控件的相对位置 android:gravit ...

  2. ASP.NET技巧:GridView控件自定义分页详解第一页

    ASP.NET技巧:GridView控件自定义分页详解 日期:2007年9月11日 作者: 查看:[大字体 中字体 小字体] <script src="../gg/info468.js ...

  3. CGContextRef绘图-iOS球形波浪加载进度控件-HcdProcessView详解

    简书也有发布:http://www.jianshu.com/p/20d7... <iOS球形波浪加载进度控件-HcdProcessView>这篇文章已经展示了我在项目中编写的一个球形进度加 ...

  4. Android控件之ConstraintLayout详解

    目录: 1.为什么要用ConstraintLayout? 2.ConstraintLayout有哪些缺点? 3.怎么使用ConstraintLayout. 1.为什么要用ConstraintLayou ...

  5. python制作好看的界面_【一点资讯】Python界面如何漂亮的展示树形结构,PyQt5控件之QTreeWidget详解 www.yidianzixun.com...

    前面内容,我们介绍了关于PyQt5的一些常用高级控件的使用,为了更好的便于大家理解,我们通过一些案例进行了讲解.用户接口 用Python将电子表格Excel展示在界面中,PyQt5之QTableWid ...

  6. Python Tkinter控件之 Label 详解

    (Label)标签控件被用于显示文本和图像.标签可包含多行文本,但只能用一种字体. Python Tkinter 标签控件(Label):指定的窗口中显示的文本和图像 注:你如果需要显示一行或多行文本 ...

  7. Android中设置显示文本,Android文本显示控件-TextView属性详解

    android:autoLink //设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) andr ...

  8. layui时间怎么设置年月日时分秒_layui-laydate时间日历控件使用方法详解

    本文实例为大家分享了laydate时间日历控件的使用方法,供大家参考,具体内容如下 此控件可使用layui或者独立版的layDate,两者初始化有些不同 在 layui 模块中使用layui.code ...

  9. android double比较大小吗,Android双向选择控件DoubleSeekBar使用详解

    本文实例为大家分享了Android双向选择控件DoubleSeekBar的使用方法,供大家参考,具体内容如下 先看效果图 1.DoubleSlideSeekBar public class Doubl ...

  10. Windows MObile中ListView控件的用法详解

    -前言:ListView在Windows Mobile中的应用非常广泛,也是Windows Mobile中很重要的一个控件,在此俺新手给他做个总结,方便其它新手参考哈! --------------- ...

最新文章

  1. eclipse打开处于无响应状态解决办法
  2. 反射式红外光电检测管 : ITR9909
  3. 135. 分发糖果(贪心算法)
  4. 2009 年 5 月 忙碌的一个月
  5. Android Bundle--ArrayMap详解
  6. Dotnet Core使用特定的SDKRuntime版本
  7. WTM系列视频教程:WebApi
  8. leetcode74. 搜索二维矩阵(二分查找)
  9. python自动控制库_Python最为神奇的库,可控制你的鼠标键盘自动运行!
  10. mysql5.6 二进制免编译安装
  11. 关于“EXP-00056: ORACLE error 12154 encountered”的解决方法
  12. fs hadoop 压缩_Hadoop 压缩图文教程
  13. Eclipse的工作空间与项目
  14. BZOJ1822[JSOI2010] 冷冻波
  15. windows7系统取消护眼模式的方法
  16. 7张图告诉你成功者与失败者的行为差别
  17. 微信收银扫码枪的实现原理你了解吗?
  18. PL/SQL Oracle恢复默认界面设置
  19. 37、免驱动USB双目同步测距3D活体深度检测和RV1126结合V4L开发USB摄像头使用
  20. composer更换镜像源

热门文章

  1. CSS3过渡、变形和动画
  2. js 一个关于图片onload加载的事
  3. Mac/Windows Android Studio / Visual Studio Code/Eclipse /Xcode 操作 快捷键 :代码多行选中等 (开发利器)多
  4. 【Robot Framework】字符串判断,if语句多执行条件,多执行语句
  5. 软件工程--结对第二次作业
  6. 朱光潜:要有悲剧,才能算人生
  7. 面试题1,值传递和参数传递
  8. Eolinker——前置用例返回的reponse值进行传递
  9. pt-archiver数据归档
  10. 监控服务器ssh登录,并发送报警邮件