对于UIPickerView,何时使用plist作为数据源?例如,如果我只是想要阵列1-100,是应该在plist中的东西,还是应该在viewDidLoad中创建的东西?
另外,我注意到在iPhone上的Clock应用程序的UIPickerView中,数字移动了,但是小时和秒的字样保持不变。我怎么做?谢谢!
答案 0 :(得分:1)
首先,使用plist和数组/字典之间的选择实际上只是一种偏好。 plist有助于以可视方式查看和编辑数据,但最终您必须先将其转换为NSDictionary,然后才能在代码中使用它:
NSString *path = [[NSBundle mainBundle] pathForResource:@"myplist" orType:@"plist"];
NSDictionary *plistDict = [NSDictionary dictionaryWithContentsOfFile:path];
就个人而言,我会在初始化方法中执行此操作,例如awakeFromNib,initWithNibName或init,而不是viewDidLoad。
最后,在选择器上获取不同列的方法是设置组件数。这是在 UIPickerViewDataSource 方法
中完成的- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
这是必需的。它必须告诉你的UITableView它将拥有多少行和部分。只需在 UIPickerViewDelegate 方法
中提供每个组件的信息- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
您可以在其中为不同的组件提供不同的数据。