UIPickerView:选择视图,父类是UIView

UIPickerView *pickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(10, 100, 300, 50)];

设置代理,通过代理设置显示样式和内容

pickerView.dataSource=self;

pickerView.delegate=self;

当列之间有关联时,要重新设置某列的值的同时进行刷新列,可以全部刷新,也可以刷新某一列

[pickerView reloadAllComponents];

[pickerView reloadComponent:2];

当pickerView重新成为第一响应者的时候刷新数据

[pickerView reloadInputViews];

pickerView的协议方法

<UIPickerViewDataSource,UIPickerViewDelegate>

设置列数

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

return 2;

}

设置每列的行数

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

{

if(component==0){

return 1;

}else{

return 2;

}

return _dataArray.count;

}

设置每列每行显示的view

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

{

//第1列显示内容

if(component==0){

}else{ //第2列显示内容

}

}

设置每列中项的高度

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

{

if(component==0){

return 60;

}else{

return 40;

}

}

设置每列的宽度

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

{

if(component==0)

return 200;

else

return 100;

}

当用户选择某行内容时执行,row是用户选择的行,component是用户选择的行所在的列

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

{

//如果用户操作的是第1列

if(component==0){

NSString *img=_dataArray[row];

//获取界面上当前显示的行数(在第几列)

NSInteger index=[pickerView selectedRowInComponent:1];

NSString *name=_dataArray[index];

NSLog(@"you choose image,%@,%@",img,name);

}else{

NSString *name=_dataArray[row];

NSInteger index=[pickerView selectedRowInComponent:0];

NSString *img=_dataArray[index];

NSLog(@"you choose name,%@,%@",img,name);

}

}

设置每列每行上显示的文本内容,component是列,row是行

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

{

if(component==0){

return @"Good";

}else{

if(row==0){

return @"Morning";

}else{

return @"Night";

}

}

}

UI控件之UIPickerView的协议方法的更多相关文章

  1. UI控件之UITableView的协议方法

    <UITableViewDataSource,UITableViewDelegate> //设置表视图的编辑状态 -(void)setEditing:(BOOL)editing anima ...

  2. UI控件(UIPickerView)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _item1 = [[NSArray alloc]i ...

  3. iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式

    在iOS开发中,经常会对UINavigationBar的样式进行全局样式.采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默 ...

  4. 【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

    转载注明出处 : http://blog.csdn.net/shulianghan/article/details/50348982 一. 日期选择器 (UIDatePicker) UIDatePic ...

  5. C#子线程更新UI控件的方法总结

    http://blog.csdn.net/jqncc/article/details/16342121 在winform C/S程序中经常会在子线程中更新控件的情况,桌面程序UI线程是主线程,当试图从 ...

  6. C#学习之在辅助线程中修改UI控件----invoke方法

    Invoke and BeginInvoke 转载地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html 在Invo ...

  7. [Android] Android 让UI控件固定于底部的几种方法

    Android 让UI控件固定于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_p ...

  8. Atitit.swt 线程调用ui控件的方法

    Atitit.swt 线程调用ui控件的方法 1 SwingUtilities.invokeLater1 2 display.asyncExec方法1 3  display.timerExec(500 ...

  9. 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。

    一 数据储存  1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...

随机推荐

  1. linux内核常用函数或宏

    1. simple_strtoul 用于将字符串转换为无符号长整数,第3个参数10意味着转换方式是10进制. ival = simple_strtoul(buffer, NULL, 10); 2. 大 ...

  2. spark使用KryoRegistrator java代码示例

    转载引用自:http://www.cnblogs.com/tovin/p/3833985.html 最近在使用spark开发过程中发现当数据量很大时,如果cache数据将消耗很多的内存.为了减少内存的 ...

  3. C字符串复制

    void mystrcpy(char *from, char *to) { for(; *from != '\0'; from++, to++) { *to = *from; } *to = '\0' ...

  4. Python 基础函数

    函数: 在程序设计中,函数是指用于进行某种计算的一系列语句的有名称的组合. 定义一个函数时,需要指定函数的名称并写下一系列程序语句.定义时不会执行,运行代码时,先加载进内存中,之后使用名称来调用这个函 ...

  5. 【BZOJ3998】[TJOI2015]弦论 后缀自动机

    [BZOJ3998][TJOI2015]弦论 Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T ...

  6. Carries

    Carries frog has nn integers a1,a2,…,ana1,a2,…,an, and she wants to add them pairwise. Unfortunately ...

  7. 普通摄像机也能做互联网HLS(m3u8)、RTMP、HTTP-FLV直播?是的,采用基于GBT28181协议的EasyGBS流媒体服务

    在之前的一篇博客<EasyNVR和EasyDSS云平台联手都不能解决的事情,只有国标GB28181能解决了>我们介绍了很多应用场景里面,RTSP和RTMP直播协议都无法满足应用需求时,国标 ...

  8. Linux下Solr的安装和配置

    一.安装 1.需要的安装包:apache-tomcat-7.0.47.tar.gz.solr-4.10.3.tgz.tgz(jdk自行安装) 2.解压tomcat并创建solr文件夹 [root@lo ...

  9. Toeplitz matrix

    w https://en.wikipedia.org/wiki/Toeplitz_matrix Proof of Stolz-Cesaro theorem | planetmath.org  http ...

  10. SQLServer与ASP中DATEDIFF函数区别

    一.SQLServer: 格式: DATEDIFF(interval,startdate,enddate) interval参数: 年-yy,yyyy 季度-qq,q 月-mm,m 年中的日-dy,y ...