如何让自动布局在xcode中正常工作?

时间:2016-03-01 11:44:28

标签: xcode swift

我试图让自动布局正常工作。出于某种原因,当我更改设备的大小时,所有图像和按钮都不合适,并且根本不会调整大小。这适用于3.5英寸屏幕以及ipad视网膜。当我运行模拟器时,应用程序会准确显示它在故事板中的显示方式。自动布局应该调整所有内容的大小,以免发生这种情况。请帮忙!

iPhone3gsImage iphone4.7Image

3 个答案:

答案 0 :(得分:2)

问题在于约束不会扩展。当您将约束高度设置为200时,即使屏幕仅为100高,它也将始终为200。所以你需要做的是尝试设置动态调整大小的约束,而不是自己设置约束高度/宽度。

例如,在UIImageView下的第一个标签上设置约束前导和尾随20,然后将标签约束设置为UIImageView上的水平居中。标签没有其他限制。这将导致标签宽度缩小,因为它设置为距离每侧20个。因为什么都没有,所以高度不会改变"推动"它会缩小,因为你缺少一些约束,但基本上你需要对UIViewController视图使用top,bottom,leading和trailing约束,以便" scale"元素。

如果您愿意,我可以尝试为您设置约束,如果您上传项目,然后您可以观察我的工作方式。

修改

我很难知道你想要什么样的行为,但是你必须在你的设置中扩展或改变尺寸。最简单的方法是调整UIImageView的大小。但是,基本上不可能让它在每个屏幕尺寸上都看起来完全相同,所以你必须在约束下玩一些约束,直到你理解它们如何工作以及如何根据你想要的方式调整它们。 。一种方法是创建你想要的布局,然后将它们连接到代码并根据屏幕的大小进行缩放(这有点痛苦,我最近在一个项目中做到了这需要花费一些时间和精力)

最简单的方法是让UIImageView在需要时更改其大小,并在底部添加额外的空间。这是我之前拼凑的一个演示项目。下载here

答案 1 :(得分:0)

个人资料照片

1)首先将配置文件pic图像中心水平设置为内容视图

2)设置配置文件pic的高度和宽度

3)将顶级空间限制设置为内容视图

更改个人资料照片标签

1)将中央水平设置为个人资料图片

2)设置宽度和高度

3)在个人资料图片之间设置垂直空间

接受的挑战标签

1)将垂直空间设置为剖析图片标签

2)将前导空间设置为容器

3)设定身高

并对以下两个内容做同样的事情。我没有测试过。检查并尝试

答案 2 :(得分:0)

经过漫长的一夜挣扎,我想出了我需要做的事情。我设置各个视图控制器的模拟尺寸为4.7英寸。这使得约束很难在所有设备上扩展,因为我设置了特定屏幕大小的约束。但是,如果使用大小类,这将是一种方法。

我在选择特定尺寸之前使用标准的600 X 600画布解决了我的问题。通过这种方式,我能够为较小的屏幕设置缩小的约束,并为较大的/ HD屏幕放大。这与自动布局完美配合。希望能帮助别人!