【发布时间】:2016-11-12 13:23:24
【问题描述】:
我有一个UITableView,它分为多个部分,其中一些我正在尝试使其可折叠 - 点击一个部分的标题,该部分中的单元格将展开/折叠。
我在 self.tableView.beginUpdates() 和 self.tableView.endUpdates() 块内使用 tableView.insertRowsAtIndexPaths(indexPaths, withRowAnimation: .Automatic) 执行此操作。
第一次打开一个部分时(即第一次向该部分添加行),里面的单元格布局不正确。代替多行文本和高度扩展以适应所需内容的单元格,我得到一个标准 44pts 高的单行单元格,其文本被省略号截断。
单元格的高度通常由estimatedHeightForRowAtIndexPath 控制,返回UITableViewAutomaticDimension。
当单元格滚动到屏幕外,或者关闭并重新打开某个部分时,单元格似乎会重新绘制并显示其正确的布局。
那么有没有办法让单元格/部分/表格在新单元格被动画显示之前重新绘制自己?
我尝试过self.tableView.reloadData() 和reloadRowsAtIndexPaths 之类的方法均未成功,但我可能没有正确使用这些方法。
我认为我的代码是正确的,但它可能在“渲染序列”中的位置错误,因为需要一个更好的术语。
非常感谢!
【问题讨论】:
标签: ios iphone uitableview swift