2016-04-17 7 views
9

Programowo utworzę UIStackView i dodaję je do rodzica UIStackView, który jest tworzony w Storyboard. Widoki stosów potomnych są poziome z 2 etykietami. Muszę naprawić szerokość drugiego UILabel i zrobić pierwszy UILabel wypełnić resztę miejsca.Ustalona szerokość elementu w UIStackView

Teraz mam to:

Before

I chcę to:

After

Mój kod do generowania dzieci stos widoki:

@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) 
    } 
} 

Dzięki za wszelkie Wsparcie!

Odpowiedz

13

Po prostu umieść ograniczenia szerokości na etykietach.

parameterValueLabel.widthAnchor.constraint(equalToConstant: 80).isActive = true 
Powiązane problemy