如果你想在失去它的操作過程中保留的東西的價值,自然的解決方案是守住它自己(「保持/恢復」):
- 「保留」:將內容偏移量獲取到字段或局部變量。 Apple doc
- ..做你想做的。
- 「還原」:將內容偏移量設置爲您上面得到的值。
(對不起,我不寫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)
我不明白的問題,setContentOffset的目的是設置滾動條的位置。 – combinatorial
當我的意思是,每次我推一個新的'viewController'我想隱藏搜索欄與contentOffset。但是當我彈出一個'viewController'時,由於某種原因偏移量不再有效。爲什麼是這樣? –
我會認爲@nizx的答案會起作用。每次顯示視圖時重置contentOffset。 – combinatorial