iOS Swift:回收单元格时保存/恢复滚动位置

时间:2015-04-09 04:02:36

标签: ios uitableview swift

我有一个包含scrollview的自定义UITableViewCell。我如何保存和恢复每个单元格的滚动位置?我不需要在会议期间保存职位,就像我上下滚动一样,我希望保留这些职位。

1 个答案:

答案 0 :(得分:1)

可以在滚动时重复使用单元格,因此无法将其保存在单元格对象中 - 通常只有n + 1个单元格存在,其中n是一次可以显示的单元格数。

如果您确实需要维护单元格状态,那么这恰好是数据源的一个功能,因此记录表或集合视图所代表的每个对象的状态。

如果它不需要是持久的,你可以只维护一个状态对象的字典(或简单的数字,如果你需要的只是一个滚动位置)。让每个单元格使用您定义的协议将表或集合视图的数据源称为委托。当单元格的状态发生变化并且您需要保存它时,单元格应该向其委托报告状态,并且委托以索引路径作为键维护该状态。下次在cellForItemAtIndexPath中看到索引路径时,将单元格设置回上次报告的状态。