自动布局垂直空间计算方法

时间:2017-02-20 06:51:50

标签: ios autolayout

我正在研究Auto Layout Guide,但是水平约束的工作方式很简单,我无法理解在这个例子中它是如何计算Y轴上的垂直间距的(这是伪代码) :

enter image description here

Vertical Constraints:
Red.top = 1.0 * Superview.top + 20.0
...


Horizontal Constraints:
Red.leading = 1.0 * Superview.leading + 20.0
...

如果我们成像Superview.top位于(x:,y:100),那么根据第一个约束,Red.top将位于:1 * 100 + 20,这意味着(x:,y:120)它比Superview.top高!那么为什么它位于上图中的Superview.top下方??

2 个答案:

答案 0 :(得分:1)

根据Auto Layout Guide,对于Top,Bottom和Baseline属性,当您向下移动屏幕时,值会增加。因此它适用于正常的Y轴值。

答案 1 :(得分:1)

我认为你有这个疑问,因为iOS坐标系缺乏知识,

在iOS中,有两种主要类型的坐标系:

左上角坐标系(ULO),其中绘图操作的原点位于绘图区域的左上角,正值向下和向右延伸。 UIKit和Core Animation框架使用的默认坐标系是基于ULO的。

左下原点坐标系(LLO),其中绘图操作的原点位于绘图区域的左下角,正值向上和向右延伸。 Core Graphics框架使用的默认坐标系是基于LLO的。

请查看下图, iOS中的默认坐标系 *Default coordinate systems in iOS*

因此,根据 ULO ,我们从顶部开始测量y轴。

转诊: https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html

https://developer.apple.com/library/content/documentation/General/Conceptual/Devpedia-CocoaApp/CoordinateSystem.html