【问题标题】:Understanding "firstBaseLine" vs. "baseLine" AutoLayout Constraint了解“第一基线”与“基线”自动布局约束
【发布时间】:2016-07-11 08:28:17
【问题描述】:

我创建了如下视图:

并使用添加缺少的约束 t 自动添加约束。 我是 iOS 世界的新手,我正在尝试配置约束的工作方式。

在文档大纲上,我可以看到添加的约束:

我点击标签 UR,尺寸检查器会显示以下内容:

按第一个基线对齐到 UL 的约束和按基线对齐到 UL 的约束有什么区别?当我单击约束按钮上的尺寸检查器时,它会显示同一行。

【问题讨论】:

    标签: ios swift autolayout nslayoutconstraint


    【解决方案1】:

    我不建议您使用“添加缺少的约束”。 DWIW(做它想做的事)是一个非常不可预测的向导。学习每个约束并手动添加。在场景层次结构中的对象之间按住 Ctrl 并拖动;使用约束检查器并编辑数值;使用三角形弹出窗口中的“更新帧”;从检查器中删除约束;重复直到你明白为止。

    firstBaseLine 指的是多行对象的顶部基线: Storyboard warning : First baseline layout attribute before iOS 8.0

    如果涉及的标签或文本字段只有一行,这是一个无用的约束。

    如果您希望两个并排的单行文本块垂直对齐,即使它们的字体大小、升序和基线降序可能不同,请使用基线对齐。看起来很自然,就像字符串在同一行上一样。

    底部、顶部和中心垂直对齐也是可能的,并且更适合非文本对象。

    【讨论】:

    • 首先,非常感谢您的回答。我在哪里可以找到关于约束的好教程?
    • @zero_coding 我认为在 youtube 和 raywenderlich.com 上提供的所有教程中都可以很好地学习。但是您必须继续练习不同的 2 屏幕才能正确学习它们。祝你好运!
    【解决方案2】:

    来自 Apple 文档:

    NSLayoutAttributeBaseline
    对象的基线。
    适用于 iOS 6.0 及更高版本。
    NSLayoutAttributeFirstBaseline
    对象的基线。对于具有多于一行文本的对象,这是最上面一行文本的基线。
    适用于 iOS 8.0 及更高版本。

    这也是对齐三行标签时的差异的屏幕截图。上方绿色标签使用NSLayoutAttributeFirstBaseline,下方绿色标签使用NSLayoutAttributeBaseline。这些是两个绿色标签的唯一约束,除了它们都与粉红色标签水平固定 40

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      相关资源
      最近更新 更多