iphone – UIPickerView不显示数据
发布时间:2020-12-14 19:36:15 所属栏目:百科 来源:网络整理
导读:我已经关注了几个youtube教程以及这里的建议,但我似乎无法让我的UIPickerView显示其数据.我正在使用三个数组填充选择器,我认为我已正确实现了代码,但显然有些错误.选择器正确显示元素数量,问题是它们都显示为“?” 我已经尝试将选择器的委托设置为self,但这
我已经关注了几个youtube教程以及这里的建议,但我似乎无法让我的UIPickerView显示其数据.我正在使用三个数组填充选择器,我认为我已正确实现了代码,但显然有些错误.选择器正确显示元素数量,问题是它们都显示为“?”
我已经尝试将选择器的委托设置为self,但这也不起作用.提前致谢. 这是我的.h文件: @interface BACcalcViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> @property(strong,nonatomic) IBOutlet UIPickerView *personInfoPicker; @property(strong,nonatomic) NSArray *heightsArray; @property(strong,nonatomic) NSArray *weightsArray; @property(strong,nonatomic) NSArray *timeArray; @end 这是我的.m文件: @interface BACcalcViewController () <UIPickerViewDataSource,UIPickerViewDelegate> @end @implementation BACcalcViewController @synthesize personInfoPicker,heightsArray,weightsArray,timeArray; - (void)viewDidLoad { [super viewDidLoad]; heightsArray = [NSArray arrayWithObjects: @"5ft 0in",@"5ft 1in",@"5ft 2in",@"5ft 3in",@"5ft 4in",@"5ft 5in",@"5ft 6in",@"5ft 7in",@"5ft 8in",@"5ft 9in",@"5ft 10in",@"5ft 11in",@"6ft 1in",@"6ft 2in",@"6ft 3in",@"6ft 4in",@"6ft 5in",@"6ft 6in",@"6ft 7in",@"6ft 8in",nil]; weightsArray = [NSArray arrayWithObjects: @"100",@"110",@"120",@"130",@"140",@"150",@"160",@"170",@"180",@"190",@"200",@"210",@"220",@"230",@"240",@"250",@"260",nil]; timeArray = [NSArray arrayWithObjects: @"1",@"2",@"3",@"4",@"5",@"6",nil]; } - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)personInfoPicker { return 3; } - (NSInteger)pickerView:(UIPickerView *)personInfoPicker numberOfRowsInComponent: (NSInteger)component { if (component == 0) return [heightsArray count]; else if (component == 1) return [weightsArray count]; else return [timeArray count]; } - (NSString *)pickerview:(UIPickerView *)personInfoPicker titleForRow:(NSInteger)row forComponent:(NSInteger)component { if (component == 0) return [heightsArray objectAtIndex:row]; else if (component == 1) return [weightsArray objectAtIndex:row]; else return [timeArray objectAtIndex:row]; } @end 解决方法
您需要设置选择器视图的dataSource并在填充数组后调用reloadAllComponents.
self.personInfoPicker.delegate = self; self.personInfoPicker.dataSource = self; [self.personInfoPicker reloadAllComponents]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |