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