左侧主导和主导主导之间的区别?

我一直在iOS中使用Swift中的约束,而大部分的命名约定/文档都是非常自我解释的,但最近困扰我的是两对NSLayoutXAxisAnchor类:

leadingAnchor, leftAnchor 

随着

 trailingAnchor, rightAnchor 

当我在我的iOS应用程序中以编程方式设置约束时,我发现我可以完全交换使用这些约束。 如果我使用leadingAnchor,运行应用程序并观察行为,然后使用leftAnchor,运行应用程序并观察行为,它的function完全相同。

我查看了developer.apple.com上的文档,结果甚至完全一样(忽略名称上的差异)。 例如比较leadingAnchor和leftAnchor:

“使用这个锚来创build视图的前沿约束,你只能将这个锚与NSLayoutXAxisAnchor锚的一个子集组合起来,你可以把一个leadingAnchor和另一个leadingAnchor,一个尾随锚或者一个centerXAnchor结合起来。参考。”

相比于:

“使用这个锚点来创build视图左边缘的约束,你只能将这个锚点与NSLayoutXAxisAnchor锚点的一个子集结合起来,你可以把一个左锚点与另一个左锚点,右锚点或者centerXAnchor组合起来。参考。”

有谁知道这些属性之间是否有意图的区别?

这在WWDC 2015的一个关于Autolayout之谜的video (我认为这是第一部分,但都值得一看)上进行了简要介绍。

左右约束是绝对的,它们将始终指向屏幕左侧或右侧的控件。 前后约束受到设备语言环境的影响; 在阅读方向从左到右(英文,法文,西class牙文等)的领域和左(和右后)可以交替使用。 在阅读方向是从右向左的地方(如希伯来语),那么“领先”将是右侧,“拖尾”将是左侧。

video中的build议是,除非您有绝对的左/右的特定要求,否则几乎总是应该使用前/后而不是左/右。

考虑标签和文本字段的典型“forms”。 如果使用前导/尾随约束,那么您将在左侧获得标签,在右侧获得文本字段,在右侧获得标签,在左侧获取希伯来语区域的标签。

如果你从右边开始教你的孩子的应用程序,你总是想要在屏幕左侧的“左”button左/右的约束将是适当的