iOS7_关于UIPickerView_如何实现UIPickerView_如何设定UIPickerView组数_每组数据的行数

在界面上实现一个UIPickerView:

1、新建一个 singleViewApplication,在 xxxViewController.m文件中:

1 @interface moboViewController ()

2 @property (nonatomic, strong) UIPickerView *picker;

3 @end

2、在 -(void)viewDidLoad方法中,实现:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //实例化
    self.picker = [[UIPickerView alloc]init];

    //位置
    self.picker.center = self.view.center;

    //添加到 view
    [self.view addSubview:self.picker];

}

3、CMD+R 跑起来:

发现是空白!为什么呢?我们进UIPickerView的头文件看一看,按住CMD点击UIPickerView,我们发现:

1 @protocol UIPickerViewDataSource, UIPickerViewDelegate;

哈哈!是因为我们还没有遵守TA的 数据源协议和代理方法 呢!

4、那我们遵守 数据源和 代理协议,在 controller.m文件中的 @interface 部分后面,来遵守协议:

1 @interface moboViewController ()<UIPickerViewDelegate,UIPickerViewDataSource> //遵守协议

2 @property (nonatomic, strong) UIPickerView *picker;

3 @end

5、在 -(void)viewDidLoad 中我们设置 代理 和数据源为 self:

 1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4
 5     //实例化
 6     self.picker = [[UIPickerView alloc]init];
 7
 8     //设置代理
 9     self.picker.delegate = self;
10
11     //设置数据源
12     self.picker.dataSource = self;
13
14     //位置
15     self.picker.center = self.view.center;
16
17     //添加到 view
18     [self.view addSubview:self.picker];
19
20 }

6、实现数据源和代理方法:

//返回组数,我们直接来返回2组好了。

1 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
2 {
3     if ([pickerView isEqual:self.picker]) { //如果传进来的pickerview是刚实现的picker就返回2
4         return 2;
5     }
6
7     return 0; //如果不是就返回0
8 }

//返回每组的数据的行数,10行好了。

1 -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
2 {
3     if ([pickerView isEqual:self.picker]) { //如果传进来的pickerview是刚实现的picker就返回10
4         return 10;
5     }
6
7     return 0;//如果不是就返回0
8 }
 1 /*
 2  实现代理方法
 3  */
 4
 5 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
 6 {
 7     if ([pickerView isEqual:self.picker]) {
 8
 9         if (component == 0) {
10             return [NSString stringWithFormat:@"A %d", row+1];
11         }
12         else if(component ==1){
13             return [NSString stringWithFormat:@"B %d", row+1];
14         }
15
16     }
17     return  0;
18 }

7、CMD+R,跑起来!

时间: 2024-11-09 15:18:50

iOS7_关于UIPickerView_如何实现UIPickerView_如何设定UIPickerView组数_每组数据的行数的相关文章

iOS7_关于UISwitch_02_如何自定义UISwitch_如何设定UISwitch的默认开关状态_如何监听 Switch开关状态

前言 上一篇博文,我们介绍了一下如何实现 UISwitch ,我们这次介绍下如何自定义 UISwitch. 原文连接:http://www.cnblogs.com/LeoYoung/p/qq907596253.html 正文 1.我们先在界面上实现一个 UISwitch. a>在 控制器.m 文件中,添加一个UISwitch的属性. 1 @interface moboViewController () 2 @property (nonatomic, strong) UISwitch *mainS

移动端文本超出设定行数后省略的方法

因为移动端绝大部分是WebKit内核的浏览器,如果纯粹的要实现文本在超出规定行数后,其余内容省略并加上"...",可以直接使用WebKit私有属性:-webkit-line-clamp来实现 css代码 .box{ overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } html代码 <div c

Linux下权限的设定(1.如何查看及读取权限信息,2.设定文件的拥有者及拥有组)

如何查看及读取权限信息 文件属性与目录属性的查看方式对于属性各字段的理解 对于文件属性字段的理解 对于目录属性字段的理解 1 类型 类型 2 文件权限 文件权限 3 SELinux Content SELinux Content 4 文件硬链接个数 目录中子目录的个数 5 文件拥有者 文件拥有者 6 文件拥有组 文件拥有组 7 文件大小 目录中子文件或子目录的元数据的大小 8 文件最后一次被修改的时间 目录中的内容最后一次被修改的时间 9 文件名称 目录名称 文件的拥有者及拥有组 文件的拥有组及

OpenCV参考手册之Mat类详解(二)

转自 http://blog.csdn.net/giantchen547792075/article/details/7169255 Mat::~Mat Mat的析构函数. C++: Mat::~Mat() 析构函数调用Mat::release(). Mat::operator = 提供矩阵赋值操作. C++: Mat& Mat::operator=(const Mat& m) C++: Mat& Mat::operator=(const MatExpr_Base& exp

Linux 常用命令汇总

Linux 常用命令汇总 1. 显示日期与时间:date 可修改显示日期格式,如:date +%Y/%m/%d %H:%M à2016/12/25 17:05(%Y:年:%m:月:%d:日:%H:24小时制:%M:分) date –d 参数后可加:today/yesterday/tomorrow 来显示今天.昨天.明天日期 2. 显示日历:cal(默认显示本月月历) cal 2001 可显示2001年整年日历:cal 10 2001 可具体显示某月月历 3.  计算器:bc 4. Tab键:用在

linux下要熟练掌握的常用快捷键和命令

请坚信这个道理:linux环境下的常用的快捷键和命令的熟练掌握,对之后的学习和工作会有莫大的帮助. 我在这里简单总结一些常用快捷键和命令,希望给大家带来一些帮助,也是自我的一次总结. 一.常用快捷键 1.终端 tab键:补齐系统中存在的文件名称.命令.命令参数或者路径.最常用的快捷键! Ctrl+A:将光标移动到命令行的行首. Ctrl+E:将光标移动到命行令的行尾. Ctrl+U:删除所在位置到行首的内容. Ctrl+K:删除所在位置到行尾的内容. Ctrl+Z:将当前进程送到后台处理. Ct

Linux重定向相关(转载帖,供自己cookbook)

Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作.  Linux默认输入是键盘,输出是显示器.你可以用重定向来改变这些设置.比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了.输出也是一样,你可以把屏幕输出重定向到一个文件里,再到文件里去看结果.重定向操作符可

Screen会话命令 Linux

Screen会话命令 Linux 记得很早之前已经写过关于screen的文章了,不知怎么丢失了,只好再写一下,方便以后使用! 由于经常在服务器上运行程序,本地不可能一直和服务器保持连接,而且如果本地和服务器的连接断开,在服务器上运行的程序将会终止,为了,查找了一些网络资料,发现screen 会话命令可以保持本地和服务器断开后,程序继续在服务器上运行,并且运行结束后,输出最后的结果. 由于再写一次比较浪费时间,这里就直接转发David_Tang的文章了,很全!(下面有些自己根据遇到的问题,进行了部

unix

unix 第一章 目录及文件操作命令 1.1 ls 语法: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件--] 说明: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列. -R 递归地列出每个子目录的内容 -a 列出所有文件,包括第一个字符为"."的隐藏文件 -d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连 用以显示目录状态. -C 输出时多列显示 -x 横向按字符顺序排列 -m 输出按流式格式横