我有一个带有StackView的collectionView Cell。
class OuterCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var stackView: UIStackView!
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
for i in 1...30 {
let tick = UIView()
if i % 2 == 0 {
tick.backgroundColor = UIColor.red
} else {
tick.backgroundColor = UIColor.clear
}
tick.tag = i
tick.heightAnchor.constraint(equalTo: self.heightAnchor, constant: 0.0).isActive = true
self.stackView?.insertArrangedSubview(tick, at:i)
}
}
我想在stackView上绘制30个单元格,在红色和透明之间交替。现在我正在设置子视图的索引以及具有自动布局锚点约束的高度,并希望.fillEqually分布将计算每个子视图的宽度和X位置。但是现在,当我尝试设置高度锚时它崩溃了,当我移除高度锚时它根本没有显示任何东西。我如何将它们铺设成全高,并且彼此相邻而没有边距?
答案 0 :(得分:1)
我认为您不应该在此处向stackview中的项目添加高度锚点。自动地,堆栈视图中包含的内容是相等的高度(或宽度取决于堆栈视图方向)。您不需要直接在stackview中设置大小。它首先打败了stackview的目的。