我有两个标签。如果一个被移动,我希望能够同时移动两者。我如何将它们与 NSLayoutConstraints “附加”在一起?我可以在 IB 中做到这一点,但需要在代码中做到这一点。
另外,什么是 NSLayoutAttributeBaseline、NSLayoutAttributeLeading 和 NSLayoutAttributeTrailing?
编辑:
居中poweredByLabel(又名label02):
[constraints addObject:[NSLayoutConstraint constraintWithItem:poweredByLabel
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:myImage
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0]];
堆叠标签并垂直切换:
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[rememberPasswordSwitch]-10-[rememberPasswordLabel]-10-[versionLabel]-[poweredByLabel]-|"
options:NSLayoutFormatAlignAllBaseline
metrics:nil
views:viewsDictionary]];
这会产生错误:
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析约束格式:选项掩码需要在垂直边缘对齐的视图,这对于也是垂直的布局是不允许的。五:[rememberPasswordSwitch]-10-[rememberPasswordLabel]-10-[versionLabel]-[poweredByLabel]-|............ ..................................................... ....................^'
没有 NSLayoutFormatAlignAllBaseline 选项,它运行良好(它们堆叠但并非全部水平居中)。