Xcode 8:自动布局领先&尾随

时间:2016-12-24 17:58:08

标签: ios xcode user-interface autolayout

我在一周前开始iOS开发,我目前正在学习AutoLayout。可悲的是,我无法绕着Leading& Trailing约束以及何时使用它们,我根本不理解它们。我做了一些研究,现在我实际上更加困惑。有人能举一些例子吗?

此定义来自Apple网站:

  

当您向后缘移动时,值会增加。为一个   从左到右的布局方向,值会随着移动而增加   正确的。对于从右到左的布局方向,值会增加   当你向左移动时。

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/AnatomyofaConstraint.html

由于

4 个答案:

答案 0 :(得分:10)

TL; DR

他们不能只是左右命名,因为它必须在两个布局方向都有意义:从左到右和从右到左。因此落后和领导。

更长的答案

我认为你问自己的问题是为什么苹果公司不仅仅是左右命名。尾随和领先是什么。

背后的原因是可能有两种不同的布局。从iOS 9开始,从左到右语言(如英语)的UI布局是......从左到右。但就阿拉伯语而言,它是从右向左的。

然而,Autolayout足够智能,您无需为这两种类型的布局设置两次布局。您只需将其设置一次,系统会自动反转它,以防您的应用支持从右到左的语言。

答案 1 :(得分:3)

对于这个答案,请忽略从右到左流动的阿拉伯语和希伯来语等语言。我将回答大多数从左到右流动的语言。

对于这些语言,"领先"约束确定对象左侧的空间,并且"尾随"约束确定右侧的空间。 (这是一个很好的助记符,左边和前面都以" L"开头。)

对于以相反方式流动的语言,双方都会切换,但是"领先"仍然将一个物体钉在前缘(你开始阅读的那一边)。

答案 2 :(得分:0)

前导表示视图的起点,尾随表示视图的终点。

例如,如果视图的框架为(x: 0, y: 0, width: 100, height: 100),则其前导为0,尾随为100。

因此,如果你从领先位置向右移动,那么领先位置和移动点之间的距离将会增加,同样在尾随的情况下会发生这种情况。

答案 3 :(得分:0)

这是关于Autolayout之谜的WWDC 2015视频中的一个(简要介绍)(我认为这是第1部分,但都值得关注)。

左右约束是绝对的,它们将始终指向屏幕的左/右或控件。设备区域设置会影响前导和尾随约束;在阅读方向从左到右(英语,法语,西班牙语等)领先的地方。左(和尾随和右)可以互换使用。在阅读方向从右到左的地方(例如希伯来语),那么'leading'将是右侧,'trailing'将是左侧。

视频中的建议是你应该几乎总是使用领先/尾随而不是左/右,除非你有绝对左/右的特定要求。

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

如果你制作了一个儿童应用程序,你从右边教导左边,你总是想要屏幕左边的“左”按钮,那么左/右约束是合适的。

在此处查看原始答案:Difference between leftAnchor and leadingAnchor?

相关问题