我创建了以下视图,如下所示:
并使用添加缺失约束 t自动添加约束。 我在iOS世界中相当新,我正在尝试配置约束如何工作。
在文档大纲中,我可以看到增加的约束:
我点击标签 UR ,尺寸检查员告诉我以下内容:
第一个基线与UL对齐的约束与基线与UL对齐的约束之间有什么区别?当我在约束按钮上单击尺寸检查器时,它会向我显示相同的行。
答案 0 :(得分:25)
来自Apple Docs:
NSLayoutAttributeBaseline
对象的基线。
适用于iOS 6.0及更高版本。
NSLayoutAttributeFirstBaseline
对象的基线。对于具有多行文本的对象,这是最顶行文本的基线 适用于iOS 8.0及更高版本。
这也是对齐三行标签时的差异截图。上面的绿色标签使用n = 5;
M = eye(n);
M(2:n+1:end) = 1;
,下面的绿色标签使用NSLayoutAttributeFirstBaseline
。这些是对两个绿色标签的唯一限制,除了它们都是从粉红色标签水平固定40个
答案 1 :(得分:10)
我不建议使用“添加缺失约束”。这是一个非常难以预测的向导DWIW(做它想要的)。了解每个约束并手动添加。在场景层次结构中的对象之间按住Ctrl键拖动;使用约束检查器并编辑数值;使用三角形弹出窗口中的“更新框架”;从检查员中删除约束;重复,直到你得到它。
firstBaseLine
指的是多行对象的顶部基线:
Storyboard warning : First baseline layout attribute before iOS 8.0
如果涉及的标签或文本字段只有一行,则它是无用的约束。
如果您希望两个并排的单行文本垂直对齐,即使它们的字体大小,上升和基线下降可能不同,请使用baseLine对齐。它看起来很自然,就像字符串在同一条线上一样。
底部,顶部和中心垂直对齐也是可能的,更适合非文本对象。