Динамически добавлять значения в UIPickerView во время выполнения
Как можно динамически добавлять значения в 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";
}
Ответов (2)2
Если бы у вас был массив заголовков, вы могли бы использовать что-то вроде:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [titles objectAtIndex:row];
}
Заголовки будут обновлены, когда вы позвоните [pickerView reloadAllComponents]
(или reloadComponent:
если у вас более одного столбца и вы хотите обновить только один из них).
Привет, у меня была проблема с UIPickerView ..... когда я вызываю reloadAllComponents, он не вызывал widthForComponent, но он вызывал другие методы делегата, такие как titleForRow .... Я понятия не имею, почему это так, возможно, яблоко не хотите, чтобы ширина менялась динамически? в любом случае это было на другом экране, поэтому у меня не было проблемы с анимацией / без анимации. Я обнаружил, что, сбросив делегата средства выбора, я могу снова вызвать widthForComponent!
т.е.
picker.delegate = view;
где view реализует UIPickerViewDelegate .... надеюсь, это кому-то поможет!