У меня есть UICollectionView
, который отображает ячейки с UILabel
и ниже, чем UIView
. UIView
использует topAnchor
с константой от 10
до UILabel
.
Некоторые ячейки будут иметь нулевое значение для UILabel
. В этом случае я хочу, чтобы константа, используемая в topAnchor
, была 0
.
Я могу установить константу для каждой ячейки (используя didSet
наблюдателя в ячейке). Макет однако я не могу обновить. view.layoutIfNeeded()
не делает этого. Ниже приведен код. Я благодарен за любые указатели. Спасибо !!
Это здесь, в классе ячейки:
var photoMarginToTop = CGFloat()
var post: Post? {
if post?.title != nil {
titleLabel.text = post?.title
photoMarginToTop = 10
updateLayout()
}
if post?.title == nil {
photoMarginToTop = 0
updateLayout()
}
}
func updateLayout() {
photoView.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: photoMarginToTop).isActive = true
photoView.layoutIfNeeded()
}