Ich versuche, Elemente innerhalb eines UIStackView zu bekommen, um sich gleich von der Mitte zu positionieren.Swift UIStackView: Elemente von der Mitte aus programmatisch positionieren.
Dies ist der gewünschte Effekt Ich möchte:
Wie man sehen kann, würde ich die zwei Textfelder mögen gleich voneinander und ausgerichtet Zentrum innerhalb des Stapels Ansicht beabstandet sind.
Diese Stapelansicht wird entweder 1 - 7 Textfelder haben, die ich aufgereiht habe.
Hier ist das, was zur Zeit kommt aus:
Dies ist, wie ich die Einstellung der Textfelder
let textLabel = UILabel()
textLabel.backgroundColor = UIColor.red
textLabel.widthAnchor.constraint(equalToConstant: 40.0).isActive = true
textLabel.heightAnchor.constraint(equalToConstant: 20.0).isActive = true
textLabel.text = "Hi"
textLabel.textAlignment = .center
let textLabel1 = UILabel()
textLabel1.backgroundColor = UIColor.red
textLabel1.widthAnchor.constraint(equalToConstant: 40.0).isActive = true
textLabel1.heightAnchor.constraint(equalToConstant: 20.0).isActive = true
textLabel1.text = "Hi"
textLabel1.textAlignment = .center
Ich erzeuge den Stapel Ansicht wie so:
//Stack View
let stackView = UIStackView()
stackView.axis = UILayoutConstraintAxis.horizontal
stackView.distribution = UIStackViewDistribution.equalCentering
stackView.alignment = UIStackViewAlignment.fill
stackView.spacing = 16.0
stackView.addArrangedSubview(textLabel)
stackView.addArrangedSubview(textLabel1)
stackView.translatesAutoresizingMaskIntoConstraints = false;
self.view.addSubview(stackView)
//Constraints
stackView.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 50).isActive = true
stackView.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: -50).isActive = true
stackView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 100).isActive = true
Wie bekomme ich die Elemente nach innen, um das Zentrum auszurichten?
Ich dachte, es
UIStackViewDistribution.equalCentering
jedoch war, dass nur knapp sein Ziel viel zu tun.
Schätzen Sie Ihre Zeit :)
I Interface Builder gefunden haben veraltete Werte für Stapel Ausrichtungen und Verteilungen zu zeigen, Sie könnten versuchen, Xcode neu starten und sehen, ob es anders rendert. – Norman
Ich weiß nicht, was Sie meinen, noch hatte ich Probleme mit Stackviews in IB. :/ – xxtesaxx
Dies war nur eine visuelle Demonstration der Stackview-Modi. – xxtesaxx