前提・実現したいこと
TableViewのセルをタップし、色を変更した状態を維持したいです。
セルが使い捨てなのでスクロールすると色の変更が破棄されてしまうと言うことがわかったので、
cellForRowAtでisSelected == trueであればとif文を書いて見たのですが、維持できませんでした…
該当のソースコード
didSelectRowAt
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at:indexPath) print("select - (indexPath)") cell?.isSelected = true cell?.backgroundColor = .systemYellow //totalに入れる self.total += Float(recipedata.shared.priceArray[indexPath.row]) ?? 0 genkaTotal.text = String(self.total) //totalをラベルに反映させる selectedrecipe.append(indexPath.row) if kotei == "baika" { BaikaKotei() }else{ GenkaKotei() } }
didDeselectRowAt
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { print("deselect - (indexPath)") let cell = tableView.cellForRow(at:indexPath) cell?.isSelected = false cell?.backgroundColor = nil self.total -= Float(recipedata.shared.priceArray[indexPath.row]) ?? 0 genkaTotal.text = String(self.total) if let deselect = selectedrecipe.firstIndex(of: indexPath.row){ selectedrecipe.remove(at: deselect) } if kotei == "baika" { BaikaKotei() }else{ GenkaKotei() } }
ツールのバージョン
Xcode : Version 11.0
Swift : Apple Swift version 5.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/18 02:04