У меня есть UITableView
, это список статей.Когда пользователь нажимает на статью, возникает какая-то причина, и когда он возвращается в список, я хочу, чтобы эта статья была помечена как «прочитанная».В этом случае помеченное как прочитанное означает, что ячейка должна выглядеть серой.Я пытаюсь сделать это, создав UIView
и использовать его в качестве наложения на эту ячейку.
Вот моя последняя попытка:
class PublicationTableViewCell: UITableViewCell {
@IBOutlet weak var publicationTitle: UILabel!
@IBOutlet weak var authorName: UILabel!
@IBOutlet weak var authorInitials: UILabel!
@IBOutlet weak var authorImage: UIImageView!
@IBOutlet weak var bottomBorder: UIView!
var pub: PublicationModel?
func updateCellProperties(publication: PublicationModel, indexPathRow: Int) {
pub = publication if let isRead = publication.isRead {
// this is the overlay that I can’t get to work
let readOverlayView = UIView()
readOverlayView.tintColor = UIColor.grey3
readOverlayView.alpha = 0.5
self.addSubview(readOverlayView)
// I was greying out just the title like this. This will go away if I get the overlay to work
publicationTitle.textColor = isRead ? UIColor.grey3 : UIColor.grey1
}
}
// some helper methods…
}
Я прошел через коди подтвердил, что для статей, которые были прочитаны, флаг isRead имеет значение true
и выполняется код для создания readOverlayView.
Я хочу, чтобы все элементы пользовательского интерфейса на элементах были выделены серым цветом, поэтому яне пытаюсь изменить цвет фона ячейки.
- Почему мой readOverlayView не влияет на внешний вид ячейки
- Есть ли лучший способ добиться желаемого эффекта?
Спасибо