一、屬性及方法
1.numberOfComponents:返回UIPickerView當(dāng)前的列數(shù)
NSInteger num = _pickerView.numberOfComponents;
NSlo(@"%d",num);
2.-(NSInteger)numberOfRowslnComponent:(NSIntger)compontent;返回compontent列中有多少行
NSIntegernumInCp = [_pickerViewnumberOfRowsInComponent:0];
NSLog(@"%d",numInCp);
3.-(CGSize)rowSizeForComponent:(NSInteger)component;返回component中一行的尺寸
CGSizesize = [_pickerViewrowSizeForComponent:0];
NSLog(@"%@",NSStringFromCGSize(size));
二从橘、deledate代理
1.設(shè)置UIPickerView的代理
_pickerView.delegate = self;
//設(shè)置UIPickerView每行顯示的內(nèi)容
2.-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return @"showData";
}
3.- (UIView*)pickerView:(UIPickerView*)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView*)view;
//返回一個(gè)視圖近迁,用來(lái)設(shè)置pickerView的每行顯示的內(nèi)容馅笙。
-(UIView*)pickerView:(UIPickerView*)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView*)view
{
UIView*myView=[[UIViewalloc]init];
myView.backgroundColor= [UIColorredColor];
returnmyView;
}
三、dataSource:數(shù)據(jù)源
#pragma mark-dataSource method
//設(shè)置每列顯示3行
- (NSInteger)pickerView:(UIPickerView*)pickerView
numberOfRowsInComponent:(NSInteger)component
{
return3;
}
//設(shè)置顯示2列
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView
{
return2;
}
四. showsSelectionIndicator:是否顯示指示器,默認(rèn)為NO
_pickerView.showsSelectionIndicator=NO;
注意:設(shè)置UIPickerView的行數(shù)與列數(shù)需要設(shè)置數(shù)據(jù)源孩锡,遵守UIPickerViewDataSource鸟顺,設(shè)置UIPickerView的內(nèi)容需要設(shè)置代理惦蚊,并且遵守代理方法UIPickerViewDelegate。
五.-(void)pickerView:(UIPickerView*)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
當(dāng)點(diǎn)擊UIPickerView的某一列中某一行的時(shí)候讯嫂,就會(huì)調(diào)用這個(gè)方法蹦锋。
六.返回第component列每一行的高度
- (CGFloat)pickerView:(UIPickerView*)pickerView
rowHeightForComponent:(NSInteger)component;
七.刷新某一列的數(shù)據(jù)
一旦調(diào)用了這個(gè)方法,就會(huì)重新給數(shù)據(jù)源發(fā)送消息計(jì)算這列的行數(shù)欧芽、重新給代理發(fā)送消息獲得這列的內(nèi)容
[pickerViewreloadComponent:1];
八.刷新所有列的數(shù)據(jù)
- (void)reloadAllComponents;
九.返回選中的是第component列的第幾行莉掂。
-(NSInteger)selectedRowInComponent:(NSInteger)component;
對(duì)省市進(jìn)行遍歷的實(shí)例:
結(jié)果為: