微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法在动态表格视图中快速获取文本字段值

如何解决我无法在动态表格视图中快速获取文本字段值

因此,我根据用户输入创建了这个部分。 例如,我输入了2个部分,我用1-8个数字填充,并且工作正常:

enter image description here

但是当我输入4个部分并用1-16个数字填充时,但是看一下第1部分,值更改了,我不知道为什么。这是图片

enter image description here

这是我的功能代码

func getAllValue() {
    for sectionIndex in 0...finalSectionNumber - 1 {
        print("section index: \(sectionIndex)")
        print("final txt field: \(finalSectionNumber)")
        for rowIndex in 0...tableView.numberOfRows(inSection: sectionIndex) - 1 {
            let indexPath = IndexPath(row: rowIndex,section: sectionIndex)
            let cells = tableView.cellForRow(at: indexPath) as? CellOutlet
            print("row index: \(rowIndex)")
            print(cells?.txtFieldSpecNumb.text ?? 0)
        }
    }
}

在这里想念什么? 有人可以帮忙吗?

提前谢谢

解决方法

请记住,单元已重用。一个单元格可以从排成一排跳到另一排。但更重要的是:这种方法是完全错误的:

        let cells = tableView.cellForRow(at: indexPath) as? CellOutlet
        print("row index: \(rowIndex)")
        print(cells?.txtFieldSpecNumb.text ?? 0)

从不永不(我提到“从不”吗?)将 view 视为 model 。单元格(即文本字段)不是数据,而是数据。如果您想知道数据是什么,请查看数据。请咨询数据模型,而不是表格视图。 (当然,您一直将用户键入的所有内容保留在数据模型的文本字段中,对吗?)

,

单元格被重用,当您滚动并且单元格的可见性超出屏幕区域时,它们将被重用。

您必须必须采用临时数组来保存值并使它们与单元格索引同步。在您创建的数组的cellForRowAt索引路径方法中设置这些值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。