2.3UIPickerView

来源:互联网 发布:体脂秤什么牌子好 知乎 编辑:程序博客网 时间:2024/06/02 08:12
UIPickerView
1.在h文件里声明
@property(nonatomic,strong) UIPickerView *myPicker;
2.在m文件里
@synthesize myPicker
3.在viewDidLoad方法中添加picker
-(void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.myPicker = [[UIPickerView alloc]init];
self.myPicker.center = self.view.center;
[self.viewaddSubView:self.myPicker];
}//这个时候只是一片空白,是因为我们还没有添加数据,

4.绑定数据,数据必须是UIPickerView的一个实例,而且必须实现UIPickerViewDataSource协议
-(void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.myPicker = [[UIPickerView alloc]init];
self.muPicker.dataSource = self;//让controller实现datasource协议
self.myPicker.center = self.view.center;
[self.viewaddSubView:self.myPicker];
}
//UIPickerViewDataSource协议
@protocol UIPickerViewDataSource<NSObject>
@required
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView*) pickerView;//添加组件
-(NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component;//一个组件有多少个选项
@end

4.在m文件中实现那两个方法

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView*) pickerView{
NSInteger result = 0;
if([pickerView isEqual:self.myPicker]){
result = 1;
}
return result;
}
-(NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component{
NSInteger result = 0;
if([pickerView isEqual:self.myPicker]){
result = 10;
}
return result;
}


5.如果要得到每个选项标示符是什么东西,而且应该怎么显示出来,就需要知道UIPickerViewDelegate协议里面的方法了
//UIPickerViewDelegate里只有一个方法,pickerView:titleForRow:forComponent:
-(NSString *)pickerView:(UIPickerView)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component{
NSString *result = nil;
if([pickerView isEqual:self.myPicker]){
result = .....

}
return result;

}

6.加上一个水平的阴影效果
self.myPicker.showSelectionIndicator = YES;


7.得到结果selectedRowInComponent:
重置选择器里面的值reloadComponent:
原创粉丝点击