自从我为 iOS 构建应用程序以来已经有一段时间了,我遇到了自动布局问题。我一直在尝试添加一个小 subview 和一个文本字段,但在 iPhone 5 上它们排列正确,但在 iPhone 6 上, View 比我预期的要大得多。尺寸或比例与 iPhone 5 上的不匹配。
您可以通过这些示例了解我的期望以及我在 6 号上实际得到的结果。
文本字段也发生了类似的问题。在 5 号它在正确的位置,但在 6 号我无法让它出现在同一个位置。
我做错了什么?
最佳答案
您正在混合和匹配宽高比和硬编码的距离数字。
- 红色 View 将与父 View 的顶部、左侧和底部保持固定距离,并具有设定的纵横比
- 因此,红色 View 在更大的屏幕上会更大,但比例相同
- 白色 View 与红色 View 的上、左、下、右边缘的距离固定
- 因此,白色 View 在较大的屏幕上会有不同的大小,但不一定按比例,因为您插入 View 的距离不会改变
如果你想让整个东西按比例缩放(这对于一个文本字段来说似乎很奇怪,你希望它到处都是相同的高度那么你需要做一些事情,比如将白色 View 固定在左边,底部和 superview 的右边,并给它一个宽高比约束。
不要忘记您还可以将特定的高度或宽度限制添加到 View 中 - 您不必确定与父 View 相关的所有内容。
编辑器中的橙色线告诉您,您当前看到的帧与您为 View 选择的约束不匹配。您应该从解决问题菜单中选择“更新框架”,以便更好地了解您正在查看的内容。布局预览助手对于同时检查您的布局在多种屏幕尺寸下的外观也非常有用。
关于ios - iOS8中自动布局的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920116/