一尘不染

UIPickerView selectRow不起作用

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)

pickerView运行良好,显示1到10,但selectRow不起作用。

它应选择第六行,但仍保留在第一行上。


阅读 760

收藏
2020-07-07

共1个答案

一尘不染

viewDidLoad方法内部时,选择器为空。由于没有要选择的第六个元素,因此不选择它。

如果将select调用的执行延迟到数据加载完成后才可以执行。一个周期就足够了。

不过,首先尝试将您的选择移至viewDidAppear

祝好运!

2020-07-07