У меня есть простой горизонтальный UIStackView
с несколькими UIViews сложены внутри. Моя цель - создать переменный интервал между представлениями. Мне хорошо известно, что я могу создать постоянное пространство между подпредставлениями, используя свойство "spacing". Однако моя цель - создать переменное пространство. Пожалуйста, обратите внимание, если это вообще возможно, я хотел бы избежать использования невидимых представлений, которые действуют как разделители.
Лучшее, что я придумал, - это обернуть мои UIViews
в отдельный UIStackView
и использовать layoutMarginsRelativeArrangement = YES
чтобы соблюдать поля макета моего внутреннего стека. Я надеялся, что смогу сделать что-то подобное с любым UIView
не прибегая к этому уродливому UIView
. Вот мой пример кода:
// 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];
В результате получается стек с представлениями рядом друг с другом с интервалом: