У меня есть представление коллекции, которое показывает временные интервалы в приложении. В темном режиме кажется, что UILabel не показывает черный цвет текста на белом фоне.
В раскадровке я установил черный цвет (также пробовал цвет по умолчанию) для метки.
В коде, когда пользователь выбирает ячейку,
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) as? TimeCell{
cell.timeLabel.toggleTheme(true)
}
}
, и у меня есть расширение UILabel:
extension UILabel{
func toggleTheme(_ selected : Bool){
if selected{
if #available(iOS 13.0, *) {
if self.traitCollection.userInterfaceStyle == .dark{
self.textColor = UIColor.black
self.backgroundColor = UIColor.white
}else{
self.textColor = UIColor.white
self.backgroundColor = UIColor.black
}
} else {
self.textColor = UIColor.white
self.backgroundColor = UIColor.black
}
}else{
if #available(iOS 13.0, *) {
if self.traitCollection.userInterfaceStyle == .dark{
self.textColor = UIColor.white
self.backgroundColor = UIColor.black
}else{
self.textColor = UIColor.black
self.backgroundColor = UIColor.white
}
} else {
self.textColor = UIColor.black
self.backgroundColor = UIColor.white
}
}
}
}
и результат:
![enter image description here](https://i.stack.imgur.com/PRZhU.png)