Wie kann ich UIStackView mit variablem Abstand zwischen den Ansichten?

Habe ich eine einfache horizontale UIStackView mit mehreren UIViews gestapelt im inneren. Mein Ziel ist die Schaffung variable Abstände zwischen den Ansichten. Ich bin mir bewusst, dass ich Konstante Abstand zwischen den Untersichten mit "spacing" Eigenschaft. Aber mein Ziel ist, erstellen Sie Variablen Raum. Bitte beachten Sie, wenn irgend möglich, möchte ich vermeiden, mit unsichtbaren Ansichten, dienen als Abstandhalter.

Die besten, die ich kam, war, einzuwickeln meinen UIViews in einem separaten UIStackView, und verwenden Sie layoutMarginsRelativeArrangement = JA zu respektieren, die layout-Ränder von meinem inneren Stapel. Ich hatte gehofft, ich könnte tun, etwas ähnliches mit jedem UIView ohne Rückgriff auf dieses hässliche work-around. Hier ist mein Beispielcode:

//Create stack view
UIStackView *stackView = [[UIStackView alloc] init];
stackView.translatesAutoresizingMaskIntoConstraints = NO;
stackView.axis = UILayoutConstraintAxisHorizontal;
stackView.alignment = UIStackViewAlignmentCenter;
stackView.layoutMarginsRelativeArrangement = YES;

//Create subview
UIView *view1 = [[UIView alloc] init];
view1.translatesAutoresizingMaskIntoConstraints = NO;
//... Add Auto Layout constraints for height /width
//...
//I was hoping the layoutMargins would be respected, but they are not
view1.layoutMargins = UIEdgeInsetsMake(0, 25, 0, 0);

//... Create more subviews
//UIView view2 = [[UIView alloc] init];
//...

//Stack the subviews
[stackView addArrangedSubview:view1];
[stackView addArrangedSubview:view2];

Das Ergebnis ist ein Stapel mit Blick auf die direkt neben einander, mit Abstand:

Wie kann ich UIStackView mit variablem Abstand zwischen den Ansichten?

InformationsquelleAutor der Frage yura | 2015-10-07

Schreibe einen Kommentar