在改变大小等级时限制会受到影响吗?

时间:2015-09-08 08:47:46

标签: ios iphone xcode ipad autolayout

我在storyboard上有一个视图控制器。我想为不同的屏幕尺寸使用不同的UI我决定使用大小类的概念。我能够设计不同大小类的UI。但问题是当我改变大小故事板中的课程&再次切换到旧的大小类,然后约束没有正确对齐,只要我在不同的大小类之间切换它们就会受到影响。所以我再次必须安排约束,所以请告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这是Autolayout和Size类方法的一个示例:

创建一个新项目并重新创建一个类似于您的请求的环境,并使用自动布局和大小类,这样您就可以看到它的工作原理,然后将其应用到您的项目中。

从故事板中,看一下布局栏(我不知道技术名称)。它是屏幕底部的蓝色条,表示" wAny hAny"

此布局允许您为通用添加约束。这不是你的情况,但无论如何,将通用值添加到你的所有对象:即:顶部空间,宽度等。直到你看到所有清除,蓝色没有自动布局警告。

现在点击wCompact-hAny(点击那里时会看到文字:它表示iphone 3.5,4,4.7在纵向模式下布局)。

打开智能助理编辑器,找到"预览",这样您就可以看到在设备上运行时屏幕的样子。此时,您的故事板应该有半屏幕,预览模式应该有半屏幕。

根据需要移动对象并调整其大小。尝试从底部的蓝色布局栏更新约束:右上角的图标"解决Autolayout问题"。选择更新约束。

它应该在你的iphone处于纵向模式(wCompact-hAny)时修复你的约束,但如果你看到任何红线有错误,请解释一下:

从一般布局(wAny-hAny)中你应该设置一般约束:i.E。我想要一个固定在左边的空间的文本标签,所以它的约束类似于:左边空间到容器= 5,然后当你的设备专门处于纵向模式而你想要那个标签在屏幕的右边将容器空间设置为容器' = 5,抱怨。 Xcode不会知道该做什么,因为左边和右边的标签有限制......

使用wAny-hAny,您正在设置一般约束,当您在wCompact-wAny中设置新布局时,size类会继承这些值。

解决方案?从子布局类中,删除令人失望的约束并添加必要的约束,以便当设备处于此模式(纵向)时,它知道如何显示对象。

奇怪?它是。 现在转到wAny-wCompact,然后将你的标签或其他任何东西移到不同的位置。不要忘记在预览屏幕中看到它如何变化!

如果您在某些时候迷路了,请删除所有布局模式中的所有约束,然后再试一次,直到您了解它是如何工作的。我希望我能更具体或更有帮助,但很难解释。祝你好运!