也许争取“无警告”项目是徒劳的,但我对自适应布局/自动布局感到非常紧张,以至于我不得不尝试压制这些警告。
我有一个 uiview,我想根据纵向屏幕宽度动态调整大小。我在通用的构建信息中设置了我的应用程序,仅纵向(并且上下颠倒)。我通过以下方式限制了 uiview:
- 将视图的中心与 Superview 的中心 X 对齐
- 使视图的宽度与 Superview 的宽度成比例
- 为视图提供 1:1 的纵横比约束
- 给定视图对超级视图顶部的垂直约束
有关详细信息,请参阅下面的屏幕截图。
所以现在我得到了关于视图的“框架在运行时不同”的警告,特别是运行时的大小和位置与画布中的内容。不知道为什么 Xcode “关心”类大小设置为任意高度和任意宽度的画布。我认为自适应布局的重点是在运行时根据设备的屏幕尺寸和方向解析尺寸和位置。
如果我崩溃并让 Xcode “更新帧”......是的,警告消失了,但是对于超大视图,几乎不可能以所见即所得的方式在小画布上进行图形化工作。这里有什么解决方案可以在不创建使在画布内工作几乎不可能的超大视图的情况下摆脱警告?