来自元组数组的 UIPicker
UIPicker from Array of Tuples
如何加载带有元组数组的 UIPickerView?
使用以下代码,我在 UIPickerView 中只看到 Oregon: 9.0
。
let myArrayTuple: [(String, Double)] = [("Illinois", 7.0), ("Wisconsin", 8.0), ("Oregon" ,9.0)]
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
var stateName:String?
var stateTax:Double?
for (name , tax) in myArrayTuple{
stateName = name
stateTax = tax
}
return stateName! + ": \(stateTax!)"
}
编辑:这是您的操作方法:请参阅 Shadow Of
的回答
在下面的示例中,我使用命名元组而不是 Shadow Of
示例中的默认值。
let myArrayTuple: [(name:String, tax:Double)] = [("Illinois", 7.0), ("Wisconsin", 8.0), ("Oregon" ,9.0)]
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let stateName = myArrayTuple[row]
return stateName.name + ": \(stateName.tax)"
}
您遇到了与for loop
理解有关的问题。
for (name , tax) in myArrayTuple{
stateName = name
stateTax = tax
}
你从 0 元素到 2 并且在每次迭代中你设置新值而不是 return 它。
循环结束后,您只会看到情况 2 中最后一个元素的最后一个值。
这就是你应该如何使用你的 UIPickerView
,我猜:
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return myArrayTuple.count
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let current = myArrayTuple[row]
return current.0 + ": \(current.1)"
}
如何加载带有元组数组的 UIPickerView?
使用以下代码,我在 UIPickerView 中只看到 Oregon: 9.0
。
let myArrayTuple: [(String, Double)] = [("Illinois", 7.0), ("Wisconsin", 8.0), ("Oregon" ,9.0)]
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
var stateName:String?
var stateTax:Double?
for (name , tax) in myArrayTuple{
stateName = name
stateTax = tax
}
return stateName! + ": \(stateTax!)"
}
编辑:这是您的操作方法:请参阅 Shadow Of
在下面的示例中,我使用命名元组而不是 Shadow Of
示例中的默认值。
let myArrayTuple: [(name:String, tax:Double)] = [("Illinois", 7.0), ("Wisconsin", 8.0), ("Oregon" ,9.0)]
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let stateName = myArrayTuple[row]
return stateName.name + ": \(stateName.tax)"
}
您遇到了与for loop
理解有关的问题。
for (name , tax) in myArrayTuple{
stateName = name
stateTax = tax
}
你从 0 元素到 2 并且在每次迭代中你设置新值而不是 return 它。
循环结束后,您只会看到情况 2 中最后一个元素的最后一个值。
这就是你应该如何使用你的 UIPickerView
,我猜:
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return myArrayTuple.count
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let current = myArrayTuple[row]
return current.0 + ": \(current.1)"
}