【Swift】UITableViewの特定のセルを更新する

UITableViewのreloadDataはテーブルビュー全体を更新します。

一部のセルのみの更新で良い場合はreloadRows、またはreloadSectionsを使った方が効率的です。

以前、UITableViewのカスタムクラスに、指定の行(Row)の更新とセクション(Section)の更新をするメソッドを作ったのでそれを紹介します。

UITableViewの特定のセルを更新する【Swift】

行(Row)の更新

class CustomTableView: UITableView {

    func reloadRow(section: Int, row: Int) {
        let indexPath = IndexPath(row: row, section: section)
        self.reloadRows(at: indexPath, with: .fade)
    }
}

列(Section)の更新

class CustomTableView: UITableView {
    
    func reloadSection(section: Int) {
        let indexSet = IndexSet(integer: section)
        self.reloadSections(indexSet, with: .fade)
    }
}

reloadDataを頻繁に使うと処理を重くなる可能性がありますので、なるべく必要最小限の方法で更新をリクエストしましょう。

以上