Ich versuche, mehrere Elemente (Beschriftungen und Schaltflächen) in UIView (oder UIStackView) zu zentrieren. Ich habe versucht, Elemente zu UIStackView mit Center-Ausrichtung und Verteilung füllen und Abstand 10, aber meine Elemente wird immer von der linken Seite positioniert werden. Ich habe versucht, die Zentren zu wechseln. Immer noch kein Glück.So zentrieren Sie mehrere Elemente in UIView
Was ich versuche zu erreichen:
[------- Etikett - Taste -------] Mit 2 Elementen.
[--label - button - button--] Mit 3 Elementen.
Gibt es eine Möglichkeit, dies ohne Verwendung von Abstandshaltern zu erreichen. Theoretisch könnte ich Constrains verwenden, aber ich bin mir nicht sicher, ob es eine gute Idee ist, weil sich die Anzahl der Elemente ändert.
let simpleView = UIView()
simpleView.addSubview(text)
simpleView.addSubview(button)
let leftLeading = NSLayoutConstraint(item: text, attribute:
.LeadingMargin, relatedBy: .Equal, toItem: simpleView,
attribute: .LeadingMargin, multiplier: 1.0,
constant: 10)
let leftLeading2 = NSLayoutConstraint(item: button, attribute:
.LeadingMargin, relatedBy: .Equal, toItem: simpleView,
attribute: .LeadingMargin, multiplier: 1.0,
constant: 10)
simpleView.addConstraint(leftLeading)
simpleView.addConstraint(leftLeading2)
simpleView.translatesAutoresizingMaskIntoConstraints = false
simpleView.sizeToFit()
newView.addSubview(simpleView)
let horizontalConstraint = NSLayoutConstraint(item: simpleView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: newView, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
newView.addConstraint(horizontalConstraint)
let verticalConstraint = NSLayoutConstraint(item: simpleView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: newView, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
newView.addConstraint(verticalConstraint)
ich etwas falsch sein muss, weil das ist, was ich bekommen (NewView ist rot, Taste ist blau, fehlt Text-Label):
Haben Sie versucht, gleichmäßig zu verteilen? – KotaBear233