簡體   English   中英

如何以編程方式將SubView添加到水平StackView中以創建Stripes?

[英]How to add SubView to a horizontal StackView programmatically to create Stripes?

我有一個帶有StackView的collectionView單元格。

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位置。 但是現在,當我嘗試設置高度錨點時它崩潰了,而當我移除高度錨點時根本不顯示任何內容。 我該如何布置它們,使它們全高且彼此相鄰且沒有邊距?

我認為您不應該在此處向堆棧視圖中的項目添加高度錨點。 自動地,包含在堆棧視圖中的東西是相等的高度(或寬度取決於堆棧視圖的方向)。 您無需直接在stackview中設置尺寸。 首先,它違反了stackview的目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM