Wie führe ich das Padding an, um es in einem UIStackView hinzuzufügen?
Dies ist mein setup: ich habe eine UIScrollView
mit führenden,top, Erprobung Rand auf 0 gesetzt. In diesem füge ich eine UIStackView
mit diesen Einschränkungen:
stackView.centerYAnchor.constraintEqualToAnchor(selectedContactsScrollView.centerYAnchor).active = true
stackView.leadingAnchor.constraintEqualToAnchor(selectedContactsScrollView.leadingAnchor).active = true
Innerhalb der übersicht füge ich einige Ansichten.
Mein Problem ist, dass wegen der Einschränkungen der ersten Ansicht Hinzugefügt stack view auch haben Vorderkante = 0.
Was sind die Möglichkeiten, die ich hinzufügen könnte einige padding auf den ersten Blick ? Ohne Anpassung der scroll-view-Einschränkungen.
InformationsquelleAutor der Frage Kobe | 2015-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung, die Sie gestellt haben, nicht fügen Sie eine Polsterung für Ihre Ansichten in Ihrem UIStackView (wie man wollte in der Frage), aber es fügt eine Führung für die UIStackView.
Könnte eine Lösung sein, fügen Sie eine weitere UIStackView in Ihrem ursprünglichen UIStackView und geben die was zu diesem neuen UIStackVIew. Dann, fügen Sie Ihre Ansichten zu dieser neuen UIStackView.
Hinweis, Sie tun können, komplett mit Interface-Builder. In anderen Worten, keine Notwendigkeit, code zu schreiben.
InformationsquelleAutor der Antwort William Kinaan
Wenn
isLayoutMarginsRelativeArrangement
- Eigenschaft true ist, wird die stack-Ansicht layout geordnet seinen Ansichten relativ zu seiner layout-Ränder.Aber es wirkt alles arrangiert Ansichten innerhalb der stack-Ansicht. Wenn Sie möchten, dass dieser Abstand für nur eine arrangierte anzeigen, müssen Sie die Verwendung von verschachtelten
UIStackView
InformationsquelleAutor der Antwort tolpp
Habe ich festgestellt, dass Einschränkungen nicht dort arbeiten, oder Sie arbeiten ein bisschen komisch (wie wenn ich auf add leading/trailing-Einschränkung ausgewählt ist, auf Bild stackview, fügt hinzu, dass führt zu collectionview auch, aber nicht add trailing; und es werden Konflikte sicher).
So können Sie layout-Ränder für alle views/stackviews innen stackview.
Wählen Sie size inspector -> layout-Ränder (explizite) -> hinzufügen Ihre Polsterung
InformationsquelleAutor der Antwort Aleksandr
Was für mich gearbeitet ist, um zu stack-view eine weitere UIView das ist nur ein Abstandshalter (funktioniert zumindest mit stackView.Verteilung = .Füllung):
InformationsquelleAutor der Antwort dorsz
Verwenden Abstand zu Platz der Elemente in der stackview:
InformationsquelleAutor der Antwort P5ycH0
swift 3:
Sie müssen nur stellen Sie offset von:
Sicher sein, dass diese Einschränkung gesetzt, nachdem Sie
parentView.addArrangdSubView(firstView)
InformationsquelleAutor der Antwort William Hu
Wenn Sie nur die führenden Polsterung, dann legen Sie die Stapel-Ansicht ist die Ausrichtung auf "Trailing" und dann sind Sie frei zu geben eindeutige Führenden constraints auf den enthaltenen Untersichten.
Als bonus, Sie können auch die Stapel-Ansicht ist die Ausrichtung auf "Center", und dann können Sie verwenden Führende und/oder Nachfolgende Einschränkungen zu geben, jedes Element seine eigene Polsterung auf beiden Seiten.
InformationsquelleAutor der Antwort Jonathan Parham
Es scheint, dass die Lösung war ziemlich einfach. Statt:
Ich schrieb:
InformationsquelleAutor der Antwort Kobe
Was wir Taten, war fügen Sie transparente Bauteile (z.B. UIButton/UIView) als die ersten und letzten Kinder des UIStackView. Dann legen Sie beschränken die Breite dieser invisible children zum anpassen der Polsterung.
InformationsquelleAutor der Antwort Crashalot