更新标签时 Pickerview 滞后

Pickerview lag when updating labels

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

程序代码如下:

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

这会将团队名称、攻击和防御值显示在屏幕上。

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

谢谢。

您使用了错误的委托方法来更新您的文本字段(或标签)。

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