UIPickerView常用属性
一.UIPickerView
1.UIPickerView的常见属性
//数据源(用来告诉UIPickerView有多少列多少行)
@property(nonatomic,assign)id dataSource;
//代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)
@property(nonatomic,assign)id 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;
下面给出一个小Demo,将集合中的信息显示在控键上,同时也展示了UIpickerView的基本使用
#import<UIKit/UIKit.h>
@interface ViewController : UIViewController
//DataSource 数据源 Delegate 实现方法
//UIPickerView视图控键
@property(strong,nonatomic) UIPickerView *mypicker;
//数据源
@property(strong,nonatomic) NSArray *arr;
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//数据源
self.arr = @[@"one",@"two",@"thress",@"four",@"five"];
//初始化视图控键
self.mypicker = [[UIPickerView alloc] initWithFrame:CGRectMake(100, 200, 200, 100)];
//self.mypicker.backgroundColor = [UIColor brownColor];
//指定代理协议
self.mypicker.delegate = self;
//指定数据源协议
self.mypicker.dataSource = self;
[self.view addSubview:self.mypicker];
}
#pragma mark dataSource(数据源) Method numberOfComponentsInPickerView:
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;// 显示的列数
}
#pragma mark dataSource(数据源) Method pickerView:numberOfRowsInComponent:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return self.arr.count;// 返回集合的个数
}
#pragma mark delegate 显示信息方法
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return self.arr[row];//返回行中的信息
}
#pragma mark 选中行的信息
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//获取集合中的信息
NSLog(@"%@",self.arr[row]);
}
#pragma mark 显示行高
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
return 50;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end