21

也许争取“无警告”项目是徒劳的,但我对自适应布局/自动布局感到非常紧张,以至于我不得不尝试压制这些警告。

我有一个 uiview,我想根据纵向屏幕宽度动态调整大小。我在通用的构建信息中设置了我的应用程序,仅纵向(并且上下颠倒)。我通过以下方式限制了 uiview:

  1. 将视图的中心与 Superview 的中心 X 对齐
  2. 使视图的宽度与 Superview 的宽度成比例
  3. 为视图提供 1:1 的纵横比约束
  4. 给定视图对超级视图顶部的垂直约束

有关详细信息,请参阅下面的屏幕截图。

所以现在我得到了关于视图的“框架在运行时不同”的警告,特别是运行时的大小和位置与画布中的内容。不知道为什么 Xcode “关心”类大小设置为任意高度和任意宽度的画布。我认为自适应布局的重点是在运行时根据设备的屏幕尺寸和方向解析尺寸和位置。

如果我崩溃并让 Xcode “更新帧”......是的,警告消失了,但是对于超大视图,几乎不可能以所见即所得的方式在小画布上进行图形化工作。这里有什么解决方案可以在不创建使在画布内工作几乎不可能的超大视图的情况下摆脱警告?

画布截图

4

4 回答 4

25

要消除警告,并让约束“正确”放置视图,只需选择发出警告的视图,按故事板右下角的小三角形: 在此处输入图像描述

然后为“容器中的所有视图”选择“更新框架”

(我希望有某种方法可以对整个故事板执行此操作。至少我还没有找到它)

于 2015-09-23T13:46:43.970 回答
23

选择一个视图并按

  • Option+ Command+=

这将更新帧大小。对所有有问题的视图重复此操作。不需要那么长时间,尤其是当您通过单击错误消息找到它们时。

感谢这个想法的答案


笔记

更新到 Xcode 8 并选择一些 View as device 后,我收到了这个错误。该菜单与 Xcode 7 中的不同,因此@Spoek 的答案不再有效。同样单击更新或重置对我不起作用。

在此处输入图像描述

更新

更新框架现在有自己的按钮。这就是为什么我之前错过了它。

在此处输入图像描述

于 2017-01-03T05:29:42.590 回答
8

您可以将模拟指标大小更改为 4 英寸 iPhone!

在此处输入图像描述

或自由形式,然后将尺寸更改为最适合您的尺寸。

在此处输入图像描述

于 2015-09-23T13:37:17.707 回答
0

我在静态表格视图单元格上收到此错误。我取消选中自动选项,警告消失了

在此处输入图像描述

于 2020-03-02T08:22:32.950 回答