У меня есть элемент пользовательского интерфейса (UISwitch
фактически, но это не имеет значения), который имеет как ведущее, так и конечное пространство, прикрепленное к супервину в Interface Builder. Ограничение выглядит в Xcode 6:iOS8 Автоматическая компоновка программно привязана к относительной границе макета
ограничения для ведущего пространства такого же эффективно. Значение ограничения: 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
свойство не имеет никакого эффекта, используя это ограничение, так что это явно не прижат к краю, но напрямую для наблюдения.
Так что мой вопрос:
Как прикрепить UI элементы пространства маржи в коде с помощью визуального языка форматирования? Или, если это невозможно, как подключить API constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
?
Спасибо!