UIPickerView从中间的选定行开始
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIPickerView从中间的选定行开始相关的知识,希望对你有一定的参考价值。
当用户从UIPickerView
中选择状态时,它会将它们带到具有所选状态的数据的不同viewController
。当他们点击“后退”按钮并前往viewController
获取pickerView
时,它总是从第一个州的顶部开始,在这种情况下是亚利桑那州。如果这是他们最初选择的状态,我怎么能让它已经滚动到中间并选择田纳西州?我正在使用Xcode 7和Swift 2,谢谢!
我有一个UIPickerView
从它获取数据:
let pickerData = ["Arizona", "Arkansas", "California","Tennessee", "Texas", "Utah", "Virginia"]
当用户在pickerView
中选择一个状态时,它会获取该值并将其添加到变量中:
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
//Takes the selected state and adds it to the variable 'currentState'
currentState = pickerData[row]
savedStateGV = currentState
}
'savedStateGV'是全局变量,'currentState'是局部变量。两者都是String
类型。
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
答案
你可以在viewcontroller中定义一个属性middleOfPicker(一个整数),你可以使用代码序列在例程“viewDidLoad”中设置这个属性(yourpicker是你给你的选择器的IBOutlet名称):
middleOfPicker = pickerData.count / 2
yourpicker.selectRow = middleOfPicker
最后,你的“后退按钮”的动作例程应该包括声明:
yourpicker.selectRow = middleOfPicker
另一答案
在快速4
yourpicker.selectRow(middleOfPicker, inComponent: 0, animated: true)
以上是关于UIPickerView从中间的选定行开始的主要内容,如果未能解决你的问题,请参考以下文章
在 UIPickerView 中更改选定行的颜色,滚动时也是如此
快速从 UIPickerView 的选定行设置 UIButton 的标题