本节学习内容:
1.UIPickerView的概念
2.UIPickerView的协义方法
3.UIPickerView的应用
UIPickerView的属性
dataSource:数据代理对象
numberOfComponentsLnPickerView:获得分组个数协义
numberOfRowsInComponent:获得行数协义
titleForRow:获得元素文字协义
rowHeightForCimponent:设置行高f协义
viewForRow:获取视图对象元素协义
[ViewController.h】
#import<UIKit/UIKit.h>
@interface
//添加UIPickerViewDelegate:普通协义代理,处理视图选取等普通事件协义功能,,UIPickerViewDataSource:数据协义代理,处理获取数据的代理协义函数
ViewController:UIViewController<UIPickerViewDelegate,UIPickerViewDataSource>
【ViewController.m】
#import"ViewController.h"
@interface ViewController()
@end
@implementation ViewController
-(void)viewdidLoad{
[super viewDidLoad];
//创建选择视图对象,显示多组数据和多个元素以供选择,例如选择日期,时间,日历效果,地区地址等功能
UIPickerView* ickerView=[[UIPickerView alloc]init];
pickerView.frame=CGRectMake[10,100,300,200);
//设置普通代理对象为当前的视图控器
pickerView.delegate=self;
//设置数据代理对象为当前视图控制器
pickerView.dataSource=self;
[self.view addSubview:pickerView];
}
//实现获取组数的协议函数,返回值为选择视图的组数,整形类型
-(NSInteger)numberOfCpnponentsInPickerView:(UIOickerView *)pickerView{
returen 3;
}
//实现每组元素的个数,每组无素有多少行,参数1:调用此协义的选择视图本身,参数2:第几组的无素个数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberofRowsInComponent:(NSInteger)component{
//第一组返回5个
if(component==0){
return 5;
}
//第二组返回10个
else if(component==1){
return 10;
}
//第二组返回20个
else if(component==2){
return 20;
}
//每组10行
return 10;
}
//显示每个元素的内容,参数1:调用此协义的选择视图本身,参数2:行数,参数3:组数
-(NSString *)pickerView(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
NSString* str=[NSString stringWithformat:@"%d组%d行",component+1,row+1];
return str;
}
//设置每行元素的高度
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 80;
}
效果图//可以将自定义的视图显示到屏幕上
-(UIView*)pickerView:(UIPickerview *)pickerView viewForRow:(NSInteger)row forcomPonent:(NSInteger)component reusingView:(UIView *)view{
UIImage* image=[UIImage imageNamed:[NSString stringWithFormat:@"%ld.png",(row)%7+1]];
UIImageView* iView=[[UIImageView alloc]initWithImage:image];
//设置图片显示大小
iView.frame=CGRectMake(0,0,40,40);
return iView;
}
网友评论