如何在运行时动态地向UIPickerView添加值。
我正在使用以下代码静态填充UIPickerView。需要补充 在运行时动态地计算值,例如三,四等。
- (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
NSString *title = nil;
if(row==0){
title = @"One";
}
if(row==1){
title = @"Two";
}
答案 0 :(得分:14)
如果你有一个标题数组,你可以使用类似的东西:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [titles objectAtIndex:row];
}
如果您有[pickerView reloadAllComponents]
(或reloadComponent:
,如果您有多列并且只想刷新其中一列,则会刷新标题。
答案 1 :(得分:1)
嘿我遇到了UIPickerView的问题.....当我调用reloadAllComponents时它没有调用widthForComponent,但它正在调用其他委托方法,例如titleForRow ....我不知道为什么会这样,也许是苹果不希望宽度动态变化?无论如何它在另一个屏幕上,所以我没有动画/无动画问题。我发现通过重置选择器的委托,我可以再次调用widthForComponent!
即
picker.delegate = view;
其中view实现了UIPickerViewDelegate ....希望这可以帮助那些人!