2016-11-16 5 views
0

私のテーブルビューには、奇数または偶数であれば背景色を設定したセルがあります。アニメーションを使用してUITableViewの行を挿入します(他のすべてのセルを更新します)

アニメーション.topで新しいセルを挿入して、テーブルビューの上部からアニメーションを作成したいとします。

しかし、これを実行するときには、セルの背景色と矛盾します。 tableView.insertRowsを使用すると、挿入された行にのみcellForRowが呼び出されることがわかります。既に存在するセルの背景色を間違えるようにします。

私が呼び出してみました: tableView.beginUpdates() tableView.insertRows() tableView.endUpdates()

本当にこの問題を解決する方法がわかりません。どんな助けもありがたい。

+0

このようにテーブルをリロードする必要があります。「tableView.reloadData()」 – Rajat

+0

@Rajatあなたは私の問題を理解していません。アニメーションが必要なので、私はリロードしたくありません。 –

+0

'func tableView(_ tableView:UITableView、willDisplayセル:UITableViewCell、forRowAt indexPath:IndexPath)にカスタムアニメーションを追加してみてください。 ' –

答えて

0

最初のセルの状態を確認してから、そのセルに従って背景を挿入して配置します。

0

表示可能なすべてのインデックスパスでreloadRows(at:with:)を使用できます。表示可能なインデックスパスは、indexPathsForVisibleRowsを呼び出して取得できます。これはアニメーションを強制するでしょう。

func reloadVisibleCells() { 
    tableView.reloadRows(at: tableView.indexPathsForVisibleRows, with: .automatic) 
} 
関連する問題