通过从API接收数据,我需要编写动态表单。这在我的脑海中翻译成一个tableView,其中包含带有标签和输入字段的单元格。
任务完成,细胞根据约束动态调整大小,一切都很好。当某些单元格中的某些输入更改时,运行以下代码:
func valueOfFieldWithIDChanged(id: Int, value: String){
formFieldsTable.reloadRows(at: [indexPath,indexPath2], with: .none)
}
更新了我的行,格式化等后正确显示了新值。
问题:
当表单变得更大并且跨越更多空间而不是屏幕时,实质上使表格可滚动出现了一个巨大的问题。当表格滚动甚至一点点时,使用reloadRows
制作了一个毛刺的表格滚动动画。
答案基本上是:如果您要使用UITableViewAutomaticDimension
,请在heightForRow
中使用reloadRows
。
问题是,某些行具有多行标签或需要以某种方式动态调整大小。似乎我必须手工计算,但我不知道如何。除非..我错过了什么?真的希望我
编辑:评论中提到有人在没有重新加载行的情况下更新字段的其他方法。这可能是一种解决方法,但我不知道其他方式是什么