何かの価値を失うアクション中にその価値を維持しようとしている場合、自然な解決策は自分でそれを保持することです (「保持/復元」)。
- 「保留」: フィールドまたはローカル変数へのコンテンツ オフセットを取得します。アップルドキュメント
- .. やりたいことは何でもしてください。
- 「復元」: コンテンツ オフセットを上記で取得した値に設定します。
(申し訳ありませんが、私は Objective C のコードを書いていないため、正確なコードを提供することはできません。コードを追加するための編集は大歓迎です。)
別の状況では、現在の行を保持してから、その行にスクロールして戻る必要がある場合があります:
(Adapted from: 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)