Como posso criar o UIStackView com espaçamento variável entre as visualizações?
Eu tenho uma horizontal simplesUIStackView
com vários UIViews empilhados dentro. Meu objetivo é criar espaçamento variável entre as visualizações. Estou ciente de que posso criar espaço constante entre as subvisões usando a propriedade "espaçamento". No entanto, meu objetivo é criar espaço variável. Observe que, se possível, eu gostaria de evitar o uso de vistas invisíveis que atuam como espaçadores.
O melhor que eu inventei foi embrulhar meuUIViews
em separadoUIStackView
, E uselayoutMarginsRelativeArrangement = YES
respeitar as margens do layout da minha pilha interna. Eu esperava poder fazer algo semelhante com qualquerUIView
sem recorrer a essa solução feia. Aqui está o meu código de exemplo:
// 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];
O resultado é uma pilha com vistas próximas uma da outra com espaçamento: