tableView.reloadData()
とtableView.reloadRows(at: [IndexPath],with: .none)
の違いは何ですか?
セルはtableView.reloadData()
の後にすべてをリロードすることを知っています
以下を試しました。
_cell.count = 2
_
indexPath
= _[0,0]
_および_[0,1]
_
_tableView.reloadRows(at: [[0,0] as IndexPath],with: .none)
tableView.reloadRows(at: [[0,1] as IndexPath],with: .none)
_
しかし、期待通りの結果にはなりませんでした。
すべてのtableView.reloadRows()
をセルでリロードする場合と、tableView.reloadData()
を使用してリロードする場合で、動作は異なりますか?
これについてはAppleドキュメントをチェックしてください-
1。 reloadData():
テーブルビューの行とセクションを再読み込みします。
説明:このメソッドを呼び出して、セル、セクションヘッダーとフッター、インデックス配列など、テーブルの作成に使用されるすべてのデータを再読み込みします。 。効率を上げるために、テーブルビューには、表示されている行のみが再表示されます。リロードの結果としてテーブルが縮小した場合、オフセットを調整します。テーブルビューのデリゲートまたはデータソースは、テーブルビューにデータを完全に再読み込みさせたいときに、このメソッドを呼び出します。特にbeginUpdates()とendUpdates()の呼び出しで実装されたアニメーションブロック内では、行を挿入または削除するメソッドで呼び出さないでください。
2。 reloadRows(at:with :):
アニメーション効果を使用して、指定された行を再読み込みします。
説明:
行を再ロードすると、テーブルビューはそのデータソースにその行の新しいセルを要求します。テーブルは、古い行をアニメーション化するときに、その新しいセルをアニメーション化します。セルの値が変化していることをユーザーに警告する場合は、このメソッドを呼び出します。ただし、ユーザーへの通知が重要でない場合(つまり、セルに表示されている値を変更したい場合)は、特定の行のセルを取得して、その新しい値を設定できます。
このメソッドがbeginUpdates()メソッドとendUpdates()メソッドで定義されたアニメーションブロックで呼び出されると、deleteRows(at:with :)と同様に動作します。 UITableViewがメソッドに渡すインデックスは、更新前のテーブルビューの状態で指定されます。これは、アニメーションブロック内のメソッド呼び出しの挿入、削除、および再読み込みの順序に関係なく発生します。
https://developer.Apple.com/documentation/uikit/uitableview/1614862-reloaddatahttps://developer.Apple.com/documentation/uikit/uitableview/1614935-reloadrows