UIPickView的基本使用
//UIPickView和TableView一样,想要展示数据也要设置数据源和代理
//设置数据源
self.pickView.dataSource = self;
//设置代理
self.pickView.delegate = self;
//遵守数据源,代理协议:
@interface ViewController ()
<UIPickerViewDataSource,UIPickerViewDelegate>
@property (weak, nonatomic) IBOutlet UIPickerView *pickView;
@end
//实现数据源代理方法:
//总共有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView{
return 3;
}
//第component列有多少行.
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 4;
}
//返回每一列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
}
//返回每一行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 50;
}
//每一行展示什么内容
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return @"gaowei";
}
//返回每一行的视图UIView
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view{
UIButton *btn = [UIButton
buttonWithType:UIButtonTypeContactAdd];
return btn;
}
//当前选中的是哪一列的哪一行
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)rowinComponent:(NSInteger)component{
}
demo
//ViewController.h
@interface ViewController: UIViewController
@end
//ViewController.m
@interface ViewController()<UIPickViewDataSource, UIPickViewDeleate>
@property (nonatomic, weak) IBOutlet UILabel *showLabel;
@property (nonatomic,weak) IBOutlet UIPickView *pickView;
@property (nonatomic,strong) NSArray *array;
@end
@implementation ViewController
-(void)viewDidLoad{
[super viewDidLoad];
self.pickView.dataSource = self;
self.pickView.delegate = self;
}
-(void)array{
if(_array == nil){
NSString *path = [[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil];
_array = [NSArray arrayWithContentsOfFile:path];
}
return _array;
}
//实现数据源代理方法:
//总共有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView{
return self.array.count;
}
//第component列有多少行.
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return self.array[component].count;
}
//返回每一列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
}
//返回每一行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 50;
}
//每一行展示什么内容
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return self.array[component][row];
}
//返回每一行的视图UIView
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view{
UIButton *btn = [UIButton
buttonWithType:UIButtonTypeContactAdd];
return btn;
}
//当前选中的是哪一列的哪一行
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
self.showLabel.text = self.array[component][row];
}
@end