【发布时间】:2010-02-08 18:11:25
【问题描述】:
我有一个内容复杂的 UITableView。当按标准方式点击编辑按钮时,用户可以编辑(重新排列和删除)单元格。但我希望单元格在“编辑”模式下看起来不同。
问题:
编辑模式下如何改变UITableView的布局,包括改变行高?
到目前为止,这就是我所拥有的:
Edit 按钮向每个 uitableviewcell (UITVC) 发送 WillTransitionToState/DidTransitionToState 消息。我对 UITVC 进行了子类化,并在每个单元格内对这些做出反应,根据需要隐藏、删除和重新洗牌。但是,改变行高超出了一个单元格的范围。
当用户点击编辑时,似乎没有向 UITableView 发送消息。有一个 - tableView:commitEditingStyle:forRowAtIndexPath: 在编辑特定行后发送到数据源。
在 heightForRowAtIndexPath 中,我可以使用 tableView.editing 属性查询当前模式,并根据需要报告高度。我可以通过调用 [tableView reloadData] 来触发重新流动表格,包括重新计算高度。但是,我什么时候调用它?
我可以将来自 WillTransitionToState 中的单元格的消息发送回“拥有”表视图,并在收到消息时调用 reloadData。但这听起来很脆弱,必须有更好的方法。
【问题讨论】:
标签: iphone cocoa-touch uitableview