У меня динамическое представление таблицы.Здесь представлена конкретная информация за целый месяц.У каждого дня своя клетка.И целью является установка цвета фона ячейки, дата которой совпадает с сегодняшней.
Первый.Я устанавливаю тег каждой ячейки внутри cellForRow indexPath
:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MonthlyCell", for: indexPath)
guard let monthlyCell = cell as? MonthlyTableViewCell else {
fatalError("Designated cell couldn't found")
}
monthlyCell.tag = indexPath.row
return monthlyCell
}
У меня также есть расширение.Что дает мне сегодняшний день как Int
:
extension Date {
static var nowDayAsInt: Int {
let calendar = Calendar.current
let component = calendar.dateComponents([.day], from: Date())
return component.day!
}
}
И, наконец, я обновляю фон пользовательской ячейки в своем собственном классе:
class MonthlyTableViewCell: UITableViewCell {
if Date.nowDayAsInt == (self.tag + 1) {
self.setDiagonalGradientBackground()
self.makeRoundedCorners()
}
}
self.setDiagonalGradientBackground()
& self.makeRoundedCorners()
также из UIView
расширения, которое, как мне кажется, самоочевидно.
Результат: Всегда задает цвет фона для двух или более ячеек:
Снимок экрана: https://imgur.com/a/FfzUgZO
Как я могу решить эту проблему?Заранее спасибо