如果您试图在丢失某物的操作期间保留它的价值,自然的解决方案是自己保留它(“保留/恢复”):
- “保持”:获取字段或局部变量的内容偏移量。苹果文档
- .. 做你想做的。
- “恢复”:将内容偏移设置为您上面得到的值。
(对不起,我不编写 Objective C 代码,所以无法提供确切的代码。欢迎编辑添加代码。)
在不同的情况下,可能需要保留您所在的行,然后滚动回该行:(
改编自:https ://stackoverflow.com/a/34270078/199364 )
(Swift)
1. 保持当前行。
let holdIndexPath = tableView.indexPathForSelectedRow()
.. 做任何事(也许以“reloadData”结尾)。
恢复保持行:
// The next line is to make sure the row object exists.
tableView.reloadRowsAtIndexPaths([holdIndexPath], withRowAnimation: .None)
tableView.scrollToRowAtIndexPath(holdIndexPath, atScrollPosition: atScrollPosition, animated: true)