我有一个uiCollectionViewCell子类,它用原型单元和约束进行设置(每个视图都是垂直和水平连接的)。
我有两个标签,大小不同,可以是一行或两行。为此,我在每个标签上设置了两个高度限制,一个大于或等于(16或20取决于标签),另一个小于或等于(32或40取决于标签)。
标签上的行数设置为0。(尽管我尝试过各种设置)。
因为我使用了自动布局和约束来设置视图,所以我在单元的awakefromnib()中指定了内容视图的宽度。
override func awakeFromNib() {
NSLayoutConstraint.activate([contentView.widthAnchor.constraint(equalToConstant: 341)])
super.awakeFromNib()
configureBorder()
}
在CollectionView的布局中,我为EstimateItemSize和itemsize指定了AutomaticDimension常量
if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize
flowLayout.itemSize = UICollectionViewFlowLayoutAutomaticSize
}
我有一个使用自动布局的想法
不
在集合视图上实现了委托。
我遇到了非常不一致的布局,某些情况下,单元格将按我希望的方式显示,而在其他情况下,标签被截断,而在其他情况下,标签非常窄,显示的文本超过三行。
我试过很多方法,包括打电话
.sizeToFit()
在每个标签的文本属性设置后,以及调用
.setNeedsDisplay()
在单元格返回之前
cellForItemAt
我在想什么是
正确的
使用故事板约束来完成此操作的方法。我在这里讨论过一些类似问题的流行答案,尽管没有真正的成功。