#import "ViewController.h"
@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
{
NSArray *_procinceArray;
NSArray *_hebeiArray;
NSArray *_henanArray;
NSArray *_anhuiArray;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
_procinceArray = [NSArray arrayWithObjects:@"河北",@"河南",@"安徽", nil];
_hebeiArray =[NSArray arrayWithObjects:@"石家莊"@"保定"@"定州", nil];
_henanArray = [NSArray arrayWithObjects:@"鄭州",@"安陽",@"濮陽", nil];
_anhuiArray = [NSArray arrayWithObjects:@"合肥", nil];
//選擇器高度的范圍:1~179:162 180~215 :180 0或者216++:216;
UIPickerView *pickerview = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100, 320, 216)];
pickerview.dataSource = self;
pickerview.delegate = self;
[self.view addSubview:pickerview];
}
//返回列數(shù)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
//返回每一列下的行數(shù)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0)
{
return _procinceArray.count;
}
if (component == 1)
{
//城市:不同省份對應(yīng)的數(shù)據(jù)不一樣,所需的行數(shù)也是不同的
//要確定第一列有多少行數(shù),首先要知道第0列選擇哪一行;
int selectedRow = [pickerView selectedRowInComponent:0];
if (selectedRow == 0)
{
return _hebeiArray.count;
}
if (selectedRow == 1)
{
return _henanArray.count;
}
else
{
return _anhuiArray.count;
}
}
return 0;
}
//是用于設(shè)置每一列中每一行的標(biāo)題內(nèi)容
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0)
{
return [_procinceArray objectAtIndex:row];
}
else
{
//首先判斷第0列選擇哪一行
int selectedRow = [pickerView selectedRowInComponent:0];
if (selectedRow == 0)
{
return [_hebeiArray objectAtIndex:row];
}
else if (selectedRow == 1)
{
return [_henanArray objectAtIndex:row];
}
else
{
return [_anhuiArray objectAtIndex:row];
}
}
return 0;
}
//設(shè)置行的高度
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
return 50;
}
//設(shè)置列的寬度
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
if (component == 0)
{
return 200;
}
else
{
return 100;
}
}
//當(dāng)你選中某一列中的某一行的時(shí)候,會調(diào)用該方法
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//如果你改變了第0列當(dāng)前選中的行,及時(shí)去刷新Pickview ,你在刷新pickview的時(shí)候,上面的協(xié)議方法會被從新調(diào)用;
if (component == 0)
{
//只要第0列行數(shù)改變,就去刷新第一例的數(shù)據(jù)
// [pickerView reloadComponent:1];
//全部刷新
[pickerView reloadAllComponents];
//刷新完畢之后,可以指定地1列當(dāng)前選中的行;
[pickerView selectRow:0 inComponent:1 animated:YES ];
}
}
@end
UIPickerView選擇器
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- UIPickerView 繼承了UIView 沒有繼承UIControl UIPickerView的時(shí)間處理由其委...