2017-03-23 5 views
0

データソースにアイテムを追加するときは、コンテンツが新しい追加セクションが上にある(同じく必ずしも表示されない)同じ位置にとどまるように、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 

テーブルに挿入した後、新しいセクションを上にアニメーション化するにはどうすればよいですか?

答えて

1

簡単な方法はありませんでした。たぶん、あなたは試すことができます:挿入位置
2.カバーの挿入位置の下の部分がリロード
後に動かないことを確認するためにあなたのtableViewの
3.変更枠の挿入位置の前の部分の前に
1.テイクスクリーンショットを4.テーブルを再ロードする
5.スクリーンショットをアニメーションして上に移動し、新しい部分を表示する

関連する問題