我有一个复杂的内容UITableView。用户可以用标准方式点击编辑按钮来编辑(重新排列和删除)单元格。但我希望单元格在“编辑”模式下看起来不同。当用户点击编辑按钮时,重做UITableView布局?
问:
如何改变UITableView的布局在编辑模式下,包括更改行高?
到目前为止,这是我所:
编辑按钮发送WillTransitionToState/DidTransitionToState消息发送到每个UITableViewCell的(UITVC)。我已经对UITVC进行了分类,并对每个单元格内的这些内容做出反应,根据需要隐藏,删除和重新洗牌。但是,更改行高不在一个单元格的范围内。
当用户点击编辑时,似乎没有发送到UITableView的消息。有一个 - tableView:commitEditingStyle:forRowAtIndexPath:编辑特定行后发送到数据源。
里面heightForRowAtIndexPath,我可以使用tableView.editing属性查询当前模式,并适当报告高度。我可以通过调用[tableView reloadData]来触发表重新流动,包括重新计算高度。但是,我什么时候打电话?
我可以将信息从WillTransitionToState中的单元发送回“拥有”表视图,并在我获取它们时调用reloadData。但这听起来很脆弱,必须有更好的办法。
按预期工作。 (BOOL)编辑动画:(布尔)动画,但我使用 - (UITableView *)tableView setEditing:(布尔)编辑动画:(布尔) )动画,这当然不起作用。因此,请始终在文档中仔细检查方法签名。 :) – Jaanus
reloadData杀死很好的编辑动画死... –