Как сделать ячейку и ее элементы серыми? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть 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 не влияет на внешний вид ячейки
  • Есть ли лучший способ добиться желаемого эффекта?

Спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете сделать:

readOverlayView.autoresizingMask = [.flexibleWidth, .flexibleHeight] перед добавлением его в качестве подпредставления, чтобы развернуть его на всю ячейку.

Однако я бы предложил сделать этот вид наложения вфайл Storyboard внутри ячейки, выставьте его здесь как IBOutlet и просто установите значение isHidden в методе updateCellProperties.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...