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)