Je crée UIStackView
par programmation et les ajoute au parent UIStackView
, qui est créé dans Storyboard. Les vues de pile enfant sont horizontales avec 2 étiquettes. J'ai besoin de fixer la largeur du second UILabel
et de faire que le premier UILabel
remplisse l'espace de repos.
Maintenant, j'ai ceci:
Et je veux ça:
Mon code pour générer des vues de pile d'enfants:
@IBOutlet weak var parentStackView: UIStackView!
func addStackViewsToParentStackView(params: [String: Float]) {
for (name, value) in params {
let parameterNameLabel = UILabel() // first label
parameterNameLabel.text = name
let parameterValueLabel = UILabel() // second label
parameterValueLabel.text = value.description
parameterValueLabel.frame.size.width = 80.0 // I've tried to fix width, but it does't help
let childStackView = UIStackView(arrangedSubviews: [parameterNameLabel, parameterValueLabel])
childStackView.axis = .Horizontal
childStackView.distribution = .FillProportionally
childStackView.alignment = .Fill
childStackView.spacing = 5
childStackView.translatesAutoresizingMaskIntoConstraints = true
parentStackView.addArrangedSubview(childStackView)
}
}
Merci pour toute aide!
Mettez simplement des contraintes de largeur sur les étiquettes.
parameterValueLabel.widthAnchor.constraint(equalToConstant: 80).isActive = true