iOS,大小调整类 - 关系/乘数和反复,混乱?

时间:2015-12-09 13:47:14

标签: ios xcode autolayout interface-builder

我已经阅读并实践了一些教程并观看了一些与自动布局和大小调整类相关的视频,但是我有几个问题。

我对自动布局关系以及它们在应用于乘数时的工作方式有点困惑。也是为什么你需要扭转约束。

我发现这个教程突出了我感到困惑的地方。

enter image description here

取自http://www.raywenderlich.com/113768/adaptive-layout-tutorial-in-ios-9-getting-started

2 个答案:

答案 0 :(得分:1)

第一项是您实际想要应用约束的对象。第二项是您希望约束相关的对象。假设您正确地链接了约束,那么您根本不必反转这些项目。乘数正是乘数应该做的。

关系"小于或等于"意味着云的高度可以小于400,但不能更大。当您添加可能相互冲突的其他约束时,这会很有用。

示例:如果superview的高度是第一项,云的高度是第二项,乘数是1, superview&#39 ; s 高度将等于云的高度。如果您撤消项目,高度将等于超视图的高度。

现在,让我们说云的高度是第1项,超级视图的高度是第2项。如果超级视图的高度是1000,那么云的高度是高度为1000.如果将乘数更改为0.4,云的高度将是超视图的高度* 0.4,因此1000 * 0.4 = 400。

如果我们将关系从等于设置为小于或等于,那么它可能会保持不变。如果我们再添加一个约束;将云的高度设置为500,我们将发生冲突。如果我们将约束从500更改为300,则云的高度将为300。

希望这有帮助!

修改:this链接和this链接可帮助您掌握一些约束功能。

答案 1 :(得分:0)

Autolayout乘数很简单。

在此示例中,您在superview中获得了一个云imageView。现在你想要这个imageView高度应该根据不同的屏幕改变。

0.4表示:heightOfCloudImage = 0.4 * heightOfSuperView。

如果我们逆转:那意味着

heightOfSuperView = 0.4 * heightOfCloudImage(没有意义)。 Superview不能小于父母。

所以这是观点之间的比率。