Tag: 可视化格式语言

iOS8自动布局以编程方式固定到相对布局边距

我有一个UI元素(实际上是UISwitch ,但实际上并不重要),在Interface Builder中将前导空格和尾随空格固定为超级视图。 约束在Xcode 6中看起来像这样: 领导空间的约束是有效的。 约束值是42.0分 。 这正是我想要的,因为对于不同的设备,我可以更改UIView上的layoutMargins属性和约束将正常工作,以增加视图之间的余量。 现在我想在代码中添加另一个视图,这个视图的前后两个空格都被固定为superview margin,所以相同的layoutMargins设置为superview。 我使用以下语法使用视觉格式语言固定视图: 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元素空间固定在代码中的边距? 或者如果不可能的话,如何使用constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant: API? 谢谢!