iOS8中的自动布局问题
Posted
技术标签:
【中文标题】iOS8中的自动布局问题【英文标题】:Problems with auto layout in iOS8 【发布时间】:2015-04-28 12:54:04 【问题描述】:自从我为 ios 构建应用程序以来已经有一段时间了,我遇到了自动布局的问题。我一直在尝试在其中添加一个小子视图和一个文本字段,但在 iPhone 5 上它们正确排列,但在 iphone 6 上,视图比我预期的要大得多。大小或比例与 iPhone 5 上的不符。
您可以通过这些示例了解我对 6 的期望和实际得到的结果。
文本字段也发生了类似的问题。在 5 上它在正确的位置,但在 6 上我无法让它出现在同一个位置。
我做错了什么?
【问题讨论】:
如果不知道自己在做什么,就不可能说出自己做错了什么。您如何添加这些视图以及您使用了哪些约束? 这是否会给您控制台中的布局警告?如果您固定到顶部和底部并同时设置纵横比,那么这些东西会在不同尺寸的屏幕上发生冲突 在我的主视图控制器中,我添加了一个从左侧、顶部和底部设置为 20 的子视图,删除了对边距的约束并将其设置为纵横比。该视图的大小正在正确调整。当我向它添加一个文本字段并给它一些限制时,无论使用什么设备,它都可能位于确切的位置。我基本上将它居中并给它一个顶部间距。 但在 5 上它与顶部的距离正确,在 6 上它离顶部更近 20%。我尝试为文本字段添加一个子视图,看看我是否可以使用类似的约束让它与它一起工作,但它最终所做的是使子视图在 6 上增加 3 倍。 是的,我收到了一些警告。我需要仔细看看他们。我尝试了很多组合以使其正常工作。 【参考方案1】:您正在混合和匹配纵横比和硬编码的距离数字。
红色视图将与超级视图的顶部、左侧和底部保持固定距离,并具有设置的纵横比 因此红色视图在更大的屏幕上会更大,但比例相同 白色视图与红色视图的顶部、左侧、底部和右侧边缘的距离固定 因此,白色视图在大屏幕上的大小会有所不同,但不一定成比例,因为您插入视图的距离不会改变如果您希望整个内容按比例缩放(这对于文本字段来说似乎很奇怪,您希望在任何地方都具有相同的高度,那么您需要执行一些操作,例如将白色视图固定在左侧、底部和超级视图的右侧,并给它一个纵横比约束。
不要忘记,您也可以将特定的高度或宽度限制添加到视图中 - 您不必确定与超级视图相关的所有内容。
编辑器中的橙色线条告诉您,您看到的框架当前与您为视图选择的约束条件不匹配。您应该从解决问题菜单中选择“更新框架”,以便更好地了解您正在查看的内容。布局预览助手对于同时检查您的布局在多种屏幕尺寸下的外观也非常有用。
【讨论】:
谢谢。我正试图了解自动布局。这似乎有很大帮助。以上是关于iOS8中的自动布局问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS7 上 UICollectionViewCell 中的 UIImageView 自动布局问题,但在 iOS8 上没问题