UIPickerView 从中间选定的行开始
UIPickerView start with selected row in middle
当用户从 UIPickerView
中选择一个状态时,它会将他们带到另一个 viewController
,其中包含所选状态的数据。当他们点击 'back' 按钮并转到 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" (你的选择器是你给选择器的 IBOutlet 名称)使用代码序列:
middleOfPicker = pickerData.count / 2
yourpicker.selectRow = middleOfPicker
最后,您的 "back button" 的动作例程应包括语句:
yourpicker.selectRow = middleOfPicker
在swift 4
yourpicker.selectRow(middleOfPicker, inComponent: 0, animated: true)
当用户从 UIPickerView
中选择一个状态时,它会将他们带到另一个 viewController
,其中包含所选状态的数据。当他们点击 'back' 按钮并转到 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" (你的选择器是你给选择器的 IBOutlet 名称)使用代码序列:
middleOfPicker = pickerData.count / 2
yourpicker.selectRow = middleOfPicker
最后,您的 "back button" 的动作例程应包括语句:
yourpicker.selectRow = middleOfPicker
在swift 4
yourpicker.selectRow(middleOfPicker, inComponent: 0, animated: true)