TableViewのCellに色をつける際に皆が通る道と思われますが「background」では色を変更することができませんので、今回はCellの色変更を行う備忘録記事です。
では早速みていきましょう。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.background = UIColor.yellow
}
上記ではCellの色変更することができません。
理由はなかなか難しいのですが、要はbackgroundの上にもう一層、層が存在し、そこにCell情報が反映されているため、backgroundの色を変えたところでその上の層(TableViewCellが表示されている層)には色の反映が上書きされてしまうというものです。
その一番上の層が呼び出されるタイミングでその層のbackgroundの色を変更する必要があるため、delegateにて変更を行います。
delegeteはviewdidloadの中で宣言しているとして、以下のdeklegate関数をclass内に付け足します。
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
cell.backgroundColor = UIColor.yellow
}
以上です。
コメント