UIPickView

一.UIPickerView
1.UIPickerView的常见属性
// 数据源(用来告诉UIPickerView有多少列多少行)
@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;
// 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)
@property(nonatomic,assign) id<UIPickerViewDelegate>   delegate;
// 是否要显示选中的指示器
@property(nonatomic)        BOOL                       showsSelectionIndicator;
// 一共有多少列
@property(nonatomic,readonly) NSInteger numberOfComponents;

2.UIPickerView的常见方法
// 重新刷新所有列
- (void)reloadAllComponents;
// 重新刷新第component列
- (void)reloadComponent:(NSInteger)component;

// 主动选中第component列的第row行
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;

// 获得第component列的当前选中的行号
- (NSInteger)selectedRowInComponent:(NSInteger)component;

3.数据源方法(UIPickerViewDataSource)
//  一共有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
//  第component列一共有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

4.代理方法(UIPickerViewDelegate)
//  第component列的宽度是多少
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
//  第component列的行高是多少
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;

//  第component列第row行显示什么文字
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;

//  第component列第row行显示怎样的view(内容)
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;

//  选中了pickerView的第component列第row行
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

二.设置代理和数据源

懒加载pilst文件(数组)

- (NSArray *)foodArray
{

    if (_foodArray == nil) {
        _foodArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"foods" ofType:@"plist"]];
    }
    return _foodArray;
}

设置数据源

// 数据源方法
// 列数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{

    return self.foodArray.count;
}
// 行数(一列)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{

    return [self.foodArray[component] count];
}

代理方法

// 代理方法 --- 列-行显示什么
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

    return self.foodArray[component][row];
}

代理方法---选中哪列哪行---列数和行数(参数)

// 代理方法 --- 选中哪列哪行
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{

    if (component == 0) {
        self.fruitLabel.text = self.foodArray[0][row];
    }else if(component == 1){

        self.mainLabel.text = self.foodArray[1][row];
    }else if (component == 2){

        self.drinkLabel.text = self.foodArray[2][row];
    }

}

时间: 2024-10-18 09:57:48

UIPickView的相关文章

UIPickView 和 UIDatePicker

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute

IOS UIPickView+sqlite 选择中国所有城市案例

1.案例简介 通过读取文件,将中国所有城市写入sqlite数据库中,现通过UIPickView实现中国所有城市的选择,效果图如下所示 2.城市对象模型 中国所有城市数据请看http://blog.csdn.net/whzhaochao/article/details/37969145,城市模型对象如下 // // CityModel.h // readData // // Created by 赵超 on 14-8-28. // Copyright (c) 2014年 赵超. All right

用UIpickView实现省市的联动

#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> @property(strong,nonatomic)UIPickerView *pickView; //定义一个可变数组用于存放省的数据 @property(strong,nonatomic)NSMutableArray *Statearry; //定义一

UIScroll和UIPickView

.h #import <UIKit/UIKit.h> #define WIDTH self.view.frame.size.width #define HEIGHT self.view.frame.size.height @interface ViewController : UIViewController<UIScrollViewDelegate, UIPickerViewDelegate, UIPickerViewDataSource> /** *  滚动视图 */ @pro

自定义UIPickView

效果图 源码 https://github.com/YouXianMing/Animations 说明 1. 数据适配器PickerViewDataAdapter含有PickerViewComponent的数组以及行高的信息,数组中有几个Component就有几列 2. PickerViewComponent中包含了PickerViewRow的数组,以及列宽的设置 3. PickerViewRow中包含PickerCustomView子类需要的数据以及自定义的PickerCustomView子类

自定义的地址选择器(UIPickView)。功能是:选择省后,其下的城市都会出现。

自定义的地区选择器 序言: 现在,许多APP里面都有注册界面和地址填写界面还有快递功能.这都会离不开一个很小的功能.那就是地址的选择和填写. 正文: 今天,我们要做一个地址填写的工具出来,很快速的完成,你的地址选择.我们要做的工具的功能是: 当你选择一个省或者市,则其下的城市都会出现.就不用我们在乱找了. 注意: 在此工具的创建时,遇到了一个很大难处.难处就是没有省地区的借口.现在,我已经写了一个,并以JSon的格式上传本博客资源里. 如果需要的朋友欢迎下载.我们为此,还要学会搭建本地服务器.

iOS基础问答面试

<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw>iOS基础问答面试题连载(二)-附答案:http://www.jianshu.com/p/ce50261f8907 <简书社区 — Timhbw>iOS基础问答面试题连载(三)-附答案:http://www.jianshu.com/p/5fd65c20912e 以下是一些自己收集的比较基础的问题(

iOS开发——高级UI之OC篇&amp;UIdatePicker&amp;UIPickerView简单使用

UIdatePicker&UIPickerView简单使用 /***********************************************************************************/ 一:UIdatePicker:(日期控件) 1.UIDatePicker什么时候用? 当用户选择日期的时候,一般弹出一个UIDatePicker给用户选择. 2.UIDatePickerios6和ios7/8的区别 下面看看使用封装的代码怎么去实现它: 因为这个比较简

Picker View控件:

Picker View控件: 中文:单滚轮选择器 自定义选择器需要遵守两个协议:数据源协议和委托协议 UIPickerView有一个实例方法selectRow:(NSInteger)inComponent:(NSInteger)animated:(BOOL),以编程的方式来选择值. UIPickerView必须用代码实现一些协议才能正常显示,而且无法在Attributes Inspector(属性检查)中配置选择器视图的外观 1. 数据源协议 数据源协议(UIPickerViewDataSour