У меня есть элемент пользовательского интерфейса (UISwitch
на самом деле, но не имеет значения), который имеет как ведущее, так и конечное пространство, прикрепленное к супервину в Interface Builder. Ограничение похоже на Xcode 6:
Ограничение для ведущего пространства одинаково эффективно. Значение ограничения 42.0 балла.
Это именно то, что я хочу, потому что для разных устройств я могу изменить свойство layoutMargins
на UIView
, и ограничения будут работать корректно, чтобы увеличить разницу между представлениями.
Теперь я хочу добавить еще один вид в код, который также будет иметь как ведущее, так и конечное пространство, прикрепленное к нему маркой супервизора, поэтому будет работать тот же самый параметр layoutMargins
, который будет отображаться в режиме супервизора.
Я привязал представление, используя язык визуального формата со следующим синтаксисом:
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-42.0-[separatorView]-42.0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(self.contentView, separatorView)];
[self.contentView addConstraints:constraints];
[self.contentView setNeedsUpdateConstraints];
Это работает, но свойство layoutMargins
не влияет на это ограничение, поэтому оно явно не привязано к марже, а непосредственно к супервизу.
Итак, мой вопрос:
Как привязать пространства элементов пользовательского интерфейса к марже в коде с использованием языка визуального формата? Или, если это невозможно, как подключиться с помощью constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
API?
Спасибо!