Swift Can';t在选择器视图中更改所选视图

Swift Can';t在选择器视图中更改所选视图,swift,uipickerview,Swift,Uipickerview,第一次显示选定视图时,我无法从pickerView更改该视图 此外,我还尝试在viewDidLoad中的selectRow方法之后直接调用didSelectRow委托方法,但什么也没发生 当我正常滑动选择器时,它会按预期工作-所选项目按照didSelectRow方法中的描述进行更改 但是我不知道如何在没有用户交互的情况下第一次更改所选视图 //开始-pikerView 让viewStart=self.start.view(forRow:self.startInex,forComponent:0)

第一次显示选定视图时,我无法从
pickerView
更改该视图

此外,我还尝试在
viewDidLoad
中的
selectRow
方法之后直接调用
didSelectRow
委托方法,但什么也没发生

当我正常滑动选择器时,它会按预期工作-所选项目按照
didSelectRow
方法中的描述进行更改

但是我不知道如何在没有用户交互的情况下第一次更改所选视图

//开始-pikerView
让viewStart=self.start.view(forRow:self.startInex,forComponent:0)
viewStart?.backgroundColor=.red

与其他注释一样,我不确定您为什么会遇到问题,但下面是一个简单的实现,它显示了创建一个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)"
        }
     }
}
类MyVC:UIViewController{
设pickerRows=5
设pickerColumns=3
重写func viewDidLoad(){
super.viewDidLoad()
让picker=UIPickerView(帧:CGRect(x:0,y:100,宽度:400,高度:400))
view.addSubview(选择器)
view.backgroundColor=.systemBackground
picker.dataSource=self
picker.delegate=self
(0..Int{
选取柱
}
公共函数pickerView(pickerView:UIPickerView,numberOfRowsInComponent:Int)->Int{
皮克洛斯
}
public func pickerView(pickerView:UIPickerView,titleForRow行:Int,forComponent组件:Int)->String{
开关(行、组件){
大小写(\u0):返回“Row\(Row)”
大小写(\,\):返回“\(组件)-\(行)”
}
}
}

与其他注释一样,我不确定您为什么会遇到问题,但下面是一个简单的实现,它显示了创建一个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)"
        }
     }
}
类MyVC:UIViewController{
设pickerRows=5
设pickerColumns=3
重写func viewDidLoad(){
super.viewDidLoad()
让picker=UIPickerView(帧:CGRect(x:0,y:100,宽度:400,高度:400))
view.addSubview(选择器)
view.backgroundColor=.systemBackground
picker.dataSource=self
picker.delegate=self
(0..Int{
选取柱
}
公共函数pickerView(pickerView:UIPickerView,numberOfRowsInComponent:Int)->Int{
皮克洛斯
}
public func pickerView(pickerView:UIPickerView,titleForRow行:Int,forComponent组件:Int)->String{
开关(行、组件){
大小写(\u0):返回“Row\(Row)”
大小写(\,\):返回“\(组件)-\(行)”
}
}
}
pickerView.selectRow(10,不完整:0,动画:false)pickerView.selectRow(10,不完整:0,动画:false)