В соответствии с другими комментариями, я не уверен, почему у вас возникают проблемы, но вот простая реализация, которая показывает создание 3-столбцового, 5-рядного средства выбора и затем установку всех столбцов (компонентов) на 3-йряд.
class MyVC: UIViewController{
let pickerRows = 5
let pickerColumns = 3
override func viewDidLoad() {
super.viewDidLoad()
let picker = UIPickerView(frame: CGRect(x:0, y:100, width: 400, height: 400))
view.addSubview(picker)
view.backgroundColor = .systemBackground
picker.dataSource = self
picker.delegate = self
(0..<pickerColumns).map{picker.selectRow(3, inComponent: $0, animated: true)}
}
}
extension MyVC: UIPickerViewDelegate, UIPickerViewDataSource {
public func numberOfComponents(in pickerView: UIPickerView) -> Int {
pickerColumns
}
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
pickerRows
}
public func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch (row, component) {
case (_, 0): return "Row \(row)"
case (_, _): return "\(component) - \(row)"
}
}
}