Wie kann ich UIStackView mit variablem Abstand zwischen Ansichten erstellen?

Ich habe eine einfache horizontaleUIStackView mit mehreren darin gestapelten UIViews. Mein Ziel ist es, einen variablen Abstand zwischen den Ansichten zu erstellen. Mir ist bewusst, dass ich mit der Eigenschaft "spacing" einen konstanten Abstand zwischen den Unteransichten erstellen kann. Mein Ziel ist es jedoch, variablen Raum zu schaffen. Bitte beachten Sie, dass ich nach Möglichkeit die Verwendung unsichtbarer Ansichten als Abstandshalter vermeiden möchte.

Das Beste, was ich mir ausgedacht habe, war, mein @ einzupackUIViews in einem separatenUIStackView und benutzelayoutMarginsRelativeArrangement = YES, um die Layoutränder meines inneren Stapels zu respektieren. Ich hatte gehofft, ich könnte mit jedem @ etwas Ähnliches machUIView ohne auf diese hässliche Umgehung zurückzugreifen. 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 Ansichten direkt nebeneinander mit Abstand:

Antworten auf die Frage(8)

Ihre Antwort auf die Frage