如何将选择器视图设置在选择列表的中间?
how to set picker view to be in the middle of selection list?
我已经像上图那样设置了一个picker view,可以看到,在view controller出现后的起点处,selection会自动显示列表中的第一个字符串(London)。但我希望当视图第一次出现时,它会显示列表中间的字符串选择,如下图
这是我使用的代码
class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {
@IBOutlet weak var cityLabel: UILabel!
@IBOutlet weak var cityPicker: UIPickerView!
let city = ["London","New York","Tokyo","Kuala Lumpur","Bali","Manchester","Madrid"]
override func viewDidLoad() {
super.viewDidLoad()
// UIPickerView Delegate dan Datasource sebagai self sudah dilakukan melalui interface builder dengan mendrag ke tombol lingkaran kuning dari pickerview nya
cityLabel.text = city[6]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return city.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return city[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
cityLabel.text = city[row]
}
}
我应该怎么做才能做到这一点?
Select 你想要的行在 viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
cityPicker.selectRow(3, inComponent: 0, animated: false)
cityLabel.text = city[cityPicker.selectedRow(inComponent:0)]
}
我已经像上图那样设置了一个picker view,可以看到,在view controller出现后的起点处,selection会自动显示列表中的第一个字符串(London)。但我希望当视图第一次出现时,它会显示列表中间的字符串选择,如下图
这是我使用的代码
class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {
@IBOutlet weak var cityLabel: UILabel!
@IBOutlet weak var cityPicker: UIPickerView!
let city = ["London","New York","Tokyo","Kuala Lumpur","Bali","Manchester","Madrid"]
override func viewDidLoad() {
super.viewDidLoad()
// UIPickerView Delegate dan Datasource sebagai self sudah dilakukan melalui interface builder dengan mendrag ke tombol lingkaran kuning dari pickerview nya
cityLabel.text = city[6]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return city.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return city[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
cityLabel.text = city[row]
}
}
我应该怎么做才能做到这一点?
Select 你想要的行在 viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
cityPicker.selectRow(3, inComponent: 0, animated: false)
cityLabel.text = city[cityPicker.selectedRow(inComponent:0)]
}