データソースにアイテムを追加するときは、コンテンツが新しい追加セクションが上にある(同じく必ずしも表示されない)同じ位置にとどまるように、tableView.reloadData()
を使用してテーブルのcontentOffsetを調整します。上向きのアニメーションを含むセクション/行を追加する
// add item to data source
let height = tableView.contentSize.height
var offset = tableView.contentOffset
tableView.reloadData()
let newSet = CGPoint(x: offset.x, y: offset.y + tableView.contentSize.height - height)
tableView.contentOffset = newSet.y < 0 ? offset : newSet
これは動作しますが、何のアニメーションがありません:
私はこれを行うために使用するコードは次のようになります。私が達成しようとしているのは、現在のセクションの上にセクションを追加することです。新しいセクションが表示されている場合は、上に移動する必要があります。
reloadData()
の代わりにセクションを挿入すると、新しいセクションの下のすべてのコンテンツがアニメーション化されます。
tableView.insertSections(IndexSet([1]), with: .automatic)
// All the content will move downwards even after setting the offset
テーブルに挿入した後、新しいセクションを上にアニメーション化するにはどうすればよいですか?