【发布时间】:2011-11-01 05:42:44
【问题描述】:
我使用 UITableView,我想改变不同单元格的高度。但我不想为此使用重新加载数据,因为我的表格视图包含我现在编辑的 UITextView 并且 UIKeyBoard 已启动。
【问题讨论】:
标签: uitableview uitextfield reloaddata
我使用 UITableView,我想改变不同单元格的高度。但我不想为此使用重新加载数据,因为我的表格视图包含我现在编辑的 UITextView 并且 UIKeyBoard 已启动。
【问题讨论】:
标签: uitableview uitextfield reloaddata
您正在寻找 UITableView 上的 reloadRowsAtIndexPaths: 方法。它将触发重新计算特定单元格的高度(以及随后的重绘)。它甚至可以为调整设置动画,以便您可以在用户滚动时实时更新,这样表格视图就不会在重新计算高度时“晃动”或“步履蹒跚”。我刚刚成功地实现了它来做你描述的事情。
【讨论】:
[self.tableView beginUpdates];[self.tableView endUpdates]; 不会关闭键盘。如果您在单元格中嵌入了文本视图,则此方法有效。
您可以致电beginUpdates && endUpdates,这将导致重新计算表格单元格的高度,
无需重新加载整个单元格
UIView.setAnimationsEnabled(false)
self.tableView.beginUpdates()
self.tableView.endUpdates()
// Re-enable animations
UIView.setAnimationsEnabled(true)
【讨论】: