UIPickerView selectRow不起作用

Clé*_*lon 8 uipickerview swift

我尝试在我的PickerView中选择一行,但它不起作用.它停留在第一排.

这是我的代码:

@IBOutlet weak var pickerView: UIDatePicker!

func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int
{
    return 1
}

func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
{
    return 10
}

func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String!{
    return String(row + 1)
}


//In viewDidLoad
pickerView.selectRow(6, inComponent: 0, animated: true)
Run Code Online (Sandbox Code Playgroud)

pickerView工作正常,显示1到10但selectRow不起作用.

它应该选择第六行,但它保留在第一行.

Dan*_* T. 17

viewDidLoad方法内部,您的选择器是空的.由于没有第6个元素可供选择,因此不会选择它.

如果延迟执行select调用,直到数据加载完成后,您可以执行此操作.可能一个周期就足够了.

首先,尝试将您的选择移动到viewDidAppear.

祝好运!

  • 很高兴听见.请记住,在viewDidLoad方法中,numberOfRowsInComponent尚未被调用,也没有titleForRow.这就是选择器仍然是空的原因.它毕竟只是装满了. (2认同)