iphone SDK:如何设置UIPickerView的初始值?

问题描述:

我有一个选择器视图,它有一个可供选择的数字列表。我想能够在特定行初始化控件。例如,如果用户指定10作为它们的默认值,那么当控件第一次初始化时,控件应该自动定位在该行。iphone SDK:如何设置UIPickerView的初始值?

在此先感谢。

您可以拨打selectRow:inComponent:animated:并将其传递给您想要选择的行的索引。

此代码将导致一个UIPickerView通过其数字旋转0到60来对0

- (void)viewDidAppear:(BOOL)animated { 

    [thePicker selectRow:60 inComponent:0 animated:YES]; 
    [thePicker reloadComponent:0]; 
    [thePicker selectRow:60 inComponent:1 animated:YES]; 
    [thePicker reloadComponent:1]; 
    [thePicker selectRow:0 inComponent:0 animated:YES]; 
    [thePicker reloadComponent:0]; 
    [thePicker selectRow:0 inComponent:1 animated:YES]; 
    [thePicker reloadComponent:1]; 
} 

休息,你的情况,显示连续十次,你会打电话像前:

[thePicker selectRow:10 inComponent:0 animated:YES]; 
+0

它不工作如预期。我把这个代码放在controller的viewDidLoad中。不知道为什么? [tipPicker selectRow:5 inComponent:0 animated:YES]; – 2009-10-28 22:29:09

+0

解决IB问题后,解决方案正常工作。 – 2009-10-28 23:27:27

+0

不错的演示。谢谢。 – 2009-10-29 21:41:35

你可以做什么,而不是选择行,是让pickerview找到你想要的值。该方法是创建一个循环来找到它在数组中,并选择它:

- (void)viewDidAppear:(BOOL)animated{  
    int i = 0; 
    for(NSString* number in arrayName) 
    { 
     if ([stringValue isEqualToString:number]){ 
      [pickerViewName selectRow:i inComponent:0 animated:YES ]; 
     } 
     i++; 
    } 
} 

如果使用UITextFieldUIPickerView

[self.text_field setInputView:self.picker]; 

然后使用此:

self.text_field.text = [_myarray objectAtIndex:10];