UI :使用 UIPickerView 来选择数据

问题:想让用户在程序中从一个列表中选择数据。

通过 Picker view 可以显示一系列的值给用户,并且可以让用户选择其中一个。iPhone 中 Clock 程序里面的时间选择就是一个非常好的例子

.h文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>

@property(nonatomic,strong)UIPickerView *myPicker;

@end

.m:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    self.myPicker = [[UIPickerView alloc]init];
    self.myPicker.center = self.view.center;

    self.myPicker.delegate = self;//设置代理
    self.myPicker.showsSelectionIndicator = YES;
    [self.view addSubview:self.myPicker];
    //此时pickerView没有数据,效果不好.
    ///为选择器添加数据:首先给 picker view 指定一个 data source,然后确保 view controller 遵循相关的协议。UIPickerView 的 data source 实例必须遵循 UIPickerViewDataSource 协议。
}

//UIPickerViewDataSource @required协议方法的实现
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    //这个方法主要是用来为你的选择器添加组件的,如果你需要多个组件,你可以在这个里面进行添加.
    return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    //顾名思义,这个方法表示你的一个组件中有多少个选项。
    return 10;
}
//UIPickerViewDelegate 协议方法
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    NSString *result = nil;
    if ([pickerView isEqual:_myPicker]) {
        result = [NSString stringWithFormat:@"Row%ld",row+1];
    }
    return result;
}

如图:

我们现在不能检测到用户实际选择的项 ,获得用户选择的数据。我们可以通过调用 UIPickerViewselectedRowIncomponent:方法。

如果程序在运行时,你需要修改picker view中的值,那么需要从data source和delegate 中 reload 相关数据。可以通过使用 reloadAllComponent:方法来强制重新加载所有数据,或者 使用 reloadComponent:方法来加载指定组件的数据。

时间: 2024-10-11 06:57:44

UI :使用 UIPickerView 来选择数据的相关文章

iOS开发UI篇—UIPickerView控件简单介绍

iOS开发UI篇—UIPickerView控件简单介绍 一.UIPickerView 控件 1.简单介绍: 2.示例代码 TXViewController.m文件 1 // Created by 鑫 on 14-10-15. 2 3 // Copyright (c) 2014年 梁镋鑫. All rights reserved. 4 5 // 6 7 8 9 #import "TXViewController.h" 10 11 12 13 @interface TXViewContro

easyui 筛选数据及仅允许选择数据

先说需求,本地已缓存数据源,用户输入拼音码或编号,筛选数据作为新的数据源,然后通过键盘选择. 再说问题,easyui combogrid控件,在mode为local,也就是将数据源缓存在本地的情况下,一般情况下,是通过 filter:function(q,row){ var opts=$(this).options; return row[opts.textField].indexOf(q)>-1; } 官网api也有介绍,但是在实际项目中有两个问题: 数据量较大,每次筛选很慢. 不知道是不是数

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

从这篇文章开始我将会把每天在开发过程中遇到的,可以用很短的文章.很小的demo演示解释出来的小心得小技巧,分享在[iOS开发每日小笔记]这个分类中.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们会给用户体验.代码效率得到一些提升,记录在这里,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,可以选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在本文的评论里狠狠吐槽,再关掉页面!感谢! 今天在项目中遇到这样一个小问题:我使用UI

怎样选择数据备份软件

随着数据安全市场的发展,数据防泄漏产业也呈现出了增长的趋势,而数据泄露的问题也在日益的滋生,企业时刻面临着数据泄露.监控不力等问题的困扰.因此对数据防泄漏产品的需求也就凸显出来了,如何选择一个合适的企业数据防泄漏产品,称为了一个棘手的问题.数据备份这项技术是为了能够保证数据安全的一种方法,那么怎么选择数据备份软件呢?下面看看北京睿芸翰林信息技术专员是怎么进行介绍的. 企业数据防泄密产品选择难的问题,主要体现在以下三方面: 一.企业数据安全需求分析是基础 客户要确定自己的核心需求,包括当前要解决的

数据挖掘工程师如何选择数据可视化工具?

如何选择数据可视化工具? 如何选用数据可视化工具?在回答这个问题之前现需要回答另外一个问题,你需要用这些数据可视化工具来做什么,实现什么目的. 也许你有一个完整的想法,已经通过验证了,需要用更直观易懂的方式来展现,从而讲述一个逻辑或者是一个故事:也许你是有大量的数据,你想怎么从这些数据中间发现,挖掘,并展现一些数据背后的知识或者洞察:也许你是有各种各样的数据,但是你不懂数据建模,编程,或者数据清洗,甚至是SQL的优化等你需要一个易用的数据可视化工具实现通过拖拽就能完成数据的可视化,并且可以给出最

6.从客户端选择数据与获取栏位值

1.选择或取消选择页面上所有行利用SelectAllRowsOnPage方法语法1:void SelectAllRowsOnPage()语法2:void SelectAllRowsOnPage(bool selected)参数selected指明是选择或取消选择所有行 2.选中或取消指定行或所有行(1)SelectRows方法(根据行的索引来选择数据)语法1: void SelectRows()选择所有记录(包括不是当前页的记录) 语法2: void SelectRows(int visible

企业选择数据中心托管的好处

在如今,很多企业都会选择服务器托管的方式,来运行企业的网络,至于为何该种方式能够受到众多企业的青睐,通过以下这些优势的介绍,就能清楚其中的缘由,以及领略到它的优越性. 一.成本上的节约. 要是按照传统的模式进行,企业要支付高额的网通线路成本,还需要花一定的资金,专门聘用高技术网络人才,来做好服务器的维护与管理工作,所以在成本上面的开销,一个月下来,已经是一笔不小的数目了.而服务器托管的出现,大大的节俭了企业的开销成本,同时企业还能享受到高速的网络. 二.稳定性能好. 在传统的网络服务器上面,很多

Python Pandas DataFrame:查询数据or选择数据(selection)之loc,iloc,at,iat,ix的用法和区别

在操作DataFrame时,肯定会经常用到loc,iloc,at等函数,各个函数看起来差不多,但是还是有很多区别的,我们一起来看下吧. 首先,还是列出一个我们用的DataFrame,注意index一列,如下: 接下来,介绍下各个函数的用法: 1.loc函数 愿意看官方文档的,请戳这里,这里一般最权威. loc函数是基于"标签"选择数据的,但是也可以接受一个boolean的array,对于每个用法,我们一一举例: 1.1 单个label 接受一个"标签"(label)

easy ui 下拉框绑定数据select控件

easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td> <select id="CompanyDegree" style="width: 150px;"> </select></td> <td>上级或同级:</td> <td> <input