【发布时间】:2015-08-19 15:38:01
【问题描述】:
在我的特殊情况下,我在视图控制器中有视图,为此我添加了以下约束:
- 将前缘、后缘、顶边和底边设置为 0
- 将底边的乘数设置为 2:1
现在视图位于视图控制器的上半部分。
在其中我添加了一个方形图像视图,为此我添加了以下约束:
- Ctrl 从图像视图拖动到超级视图并添加相等的高度和宽度。
- 更改宽度和高度的乘数,直到我有一个完美的正方形。
- 添加了垂直和水平居中的约束
我的约束看起来很完美,但是在模拟器中运行时,我没有得到一个完美的正方形。除此之外,在不同的模拟器屏幕上运行时,图像视图不会调整大小。
这是我的设置:
- 已启用自动布局和大小类
- 我为情节提要使用推断大小
- 自适应布局设置为任意宽度和高度
- 我正在尝试为 4s、5、6 和 6+ 模拟器运行此程序。
我查看了其他 stackoverflow 帖子,但似乎没有任何效果。
是否有一些基本步骤可以做到这一点?
编辑:
设置>=10个约束后:
编辑3:我添加了顶部,底部,前导,尾随约束2次,1次小于或等于(优先级1000),另一个大于或等于(优先级800),常数值为90。我不知道为什么底部它试图从主视图延伸到 90 pt,而不是容器视图(绿色)。
【问题讨论】:
-
您应该在要保持正方形的视图上使用 1:1 的 aspectRatio 约束,然后仅包含其父级的高度或宽度,但不能同时包含两者。
-
所以只需将纵横比设置为 1:1 并设置与超级视图成比例的高度或宽度?这样做我得到一个正方形(很小),但它不会根据屏幕调整大小,所有屏幕上的大小相同
标签: ios swift autolayout