セルをタップしてもハイライトしないようにする

2023/03/18に公開

デフォルトでは、セルをタップするとハイライトされてしまいますが、遷移する必要のないセルなどではこの機能が不要な場合があります。

isUserInteractionEnabledをfalseにする方法もありますが、その場合、セルの中のボタンなども無効化されてしまいます。
iOS15からは、configurationUpdateHandlerという新しい機能が登場しました。これはセルの状態が変わった時に呼ばれます。
以下のようにコードを書くことで、セルのハイライト機能を常にnoneにすることができます。

cell.configurationUpdateHandler = { (cell, state) in
 cell.selectionStyle = .none
}

Discussion