更新标签时Pickerview滞后

时间:2017-11-14 17:38:39

标签: swift uipickerview

我正在使用选择器视图,并希望更新屏幕上与当前所选项目相关的内容。

以下是该计划的代码:

   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]
}

这会将团队名称,攻击和防御值放在屏幕上。

然而,当滚动选择器时,我得到了错误的结果。文本输出与选择器中当前的内容不匹配。知道如何解决这个问题吗?

感谢。

1 个答案:

答案 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])"
}