Якорь ширины детского просмотра не работает внутри stackview

enter image description hereI я пытаюсь иметь максимум 3 представления внутри Stackview, и все дочерние представления должны быть выровнены по центру `

     for _ in array{
        if(stackView.subviews.count != 3){
            let image : UIImageView = UIImageView()
            image.backgroundColor = UIColor.orange
            image.heightAnchor.constraint(equalToConstant:30).isActive=true
            image.widthAnchor.constraint(equalToConstant:30).isActive=true
            image.layer.cornerRadius=15
            stackView.addArrangedSubview(image)
        }

` выравнивание stackview - по центру, а распределение - по центру

1
0
939
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это может быть выполнено, если stackView имеет ограничение centerX без начальных и конечных ограничений, чтобы растянуть его в соответствии с размером дочерних элементов.

    let sta = UIStackView()

    sta.translatesAutoresizingMaskIntoConstraints = false

    sta.distribution = .fill

    sta.axis = UILayoutConstraintAxis.horizontal

    self.view.addSubview(sta)

    sta.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive=true

    sta.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 100).isActive=true

    sta.heightAnchor.constraint(equalToConstant:30).isActive=true

    for _ in 0...10 {

            let image : UIImageView = UIImageView()
            image.translatesAutoresizingMaskIntoConstraints = false
            sta.addArrangedSubview(image)
            image.backgroundColor = UIColor.blue
            image.heightAnchor.constraint(equalToConstant:30).isActive=true
            image.widthAnchor.constraint(equalToConstant:50).isActive=true
            image.layer.cornerRadius=15



    }

Спасибо чувак! это сработало. моя ошибка у меня было представление стека в раскадровке с ограничением ширины

Mithran 11.04.2018 18:48

Другие вопросы по теме