动态调整collectionViewCell的常量以在自动布局中使用

时间:2018-05-17 17:38:54

标签: ios swift uicollectionview autolayout

我有一个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() } 没有做到这一点。下面是代码。我很感激任何指示。谢谢!

这是在单元格类中:

roman.romanToPositiveInteger()

2 个答案:

答案 0 :(得分:0)

layoutIfNeeded()函数布局视图的子视图,而不是您传递此函数的视图。因此,直接更新单元格布局。

答案 1 :(得分:0)

看起来你正试图为你的细胞创造动态高度?

我建议你继承UICollectionViewFlowLayout并关注this tutorial by Ray Wenderlich。它们采用随机图像高度并相应地调整单元格大小。