我正在使用选择器视图,并希望更新屏幕上与当前所选项目相关的内容。
以下是该计划的代码:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
TeamLabel.text = teams [row]
attackField.text = "\(attacks [row])"
defenseField.text = "\(defenses [row])"
currentRow = row
return teams [row]
}
这会将团队名称,攻击和防御值放在屏幕上。
然而,当滚动选择器时,我得到了错误的结果。文本输出与选择器中当前的内容不匹配。知道如何解决这个问题吗?
感谢。
答案 0 :(得分:0)
您使用错误的委托方法更新文本字段(或标签)。
将titleForRow
更新为:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return teams[row]
}
然后实施didSelectRow
委托方法来更新字段:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
TeamLabel.text = teams[row]
attackField.text = "\(attacks[row])"
defenseField.text = "\(defenses[row])"
}