2009-02-25 70 views
3

如何在運行時動態地將值添加到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"; 
    } 

回答

14

如果你有職稱的數組,你可以使用類似:

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
    return [titles objectAtIndex:row]; 
} 

當你調用[pickerView reloadAllComponents](或reloadComponent:如果你有更多的遊戲將被刷新而不是一列,只想刷新其中一列)。

+0

什麼事件會UIPickerView重讀值? – 2009-02-25 05:12:20

1

嘿,我有一個UIPickerView的問題.....當我調用reloadAllComponents它沒有調用widthForComponent,但它調用其他委託方法,如titleForRow ....我不知道這是爲什麼,也許蘋果不想動態改變寬度?無論如何它是在另一個屏幕上,所以我沒有動畫/無動畫的問題。我發現通過重新設置選取器的委託,我可以再次調用widthForComponent!

picker.delegate = view; 

其中視圖實現UIPickerViewDelegate ....希望這有助於有人出來!