我有一个由calendarView
组成的collectionView
。它是使用数学计算得出的自定义calendarView
。
第七行标记为星期六,是假日,因此第七列的所有标签的字体颜色均为红色。
但是,当我滑动或导航到其他日子时,红色标签以随机顺序散落,这是无法追踪的。截图如下:
这是怎么发生的?
在我的dequeueReusableCell
方法中,我将假日配置为:
cell.isHoliday = (indexPath.row + 1) % 7 == 0 ? true : false
这是我自定义
collectionViewCell
中放假的逻辑。@IBOutlet var dateLabel: UILabel!
@IBOutlet var englishDateLabel: UILabel!
@IBOutlet var tithiLabel: UILabel!
var isToday: Bool = false {
didSet {
self.contentView.backgroundColor = isToday ? Colors.Palette.LightGreen : UIColor.white
}
}
var isHoliday: Bool = false {
didSet {
if isHoliday {
tithiLabel.textColor = Colors.Palette.DarkRed
dateLabel.textColor = Colors.Palette.DarkRed
englishDateLabel.textColor = Colors.Palette.DarkRed
}
else {
dateLabel.textColor = UIColor.black
englishDateLabel.textColor = UIColor.black
}
}
}
当我滑动到下个月时,每个collectionview单元顶部的红色标签数量将继续增加。为什么会发生这种情况,如何阻止这种情况发生?
最佳答案
您缺少其他部分:
var isHoliday: Bool = false {
didSet {
if isHoliday {
tithiLabel.textColor = Colors.Palette.DarkRed
dateLabel.textColor = Colors.Palette.DarkRed
englishDateLabel.textColor = Colors.Palette.DarkRed
}
else {
tithiLabel.textColor = UIColor.black
dateLabel.textColor = UIColor.black
englishDateLabel.textColor = UIColor.black
}
}
}
关于ios - 使collectionviewcell出队的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999466/