框架"在运行时会有所不同"....这不是重点吗?

Ele*_*nny 20 xcode ios autolayout adaptive-layout

也许争取一个"无警告"项目是徒劳的,但我对自适应布局/自动布局很紧张,我不得不尝试并压制这些警告.

我有一个uiview,我希望根据纵向屏幕宽度动态调整大小.我的应用程序设置在通用的构建信息,仅限肖像(和颠倒).我通过以下方式限制了uiview:

  1. 将视图中心与Superview的X中心对齐
  2. 使视图的宽度与Superview的宽度成比例
  3. 使视图的宽高比约束为1:1
  4. 鉴于视图对superview顶部的垂直约束

有关详细信息,请参阅下面的截图.

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

如果我崩溃并让Xcode"更新帧"......是的,警告消失了,但是对于超大视图,几乎不可能以所见即所得的方式在小画布上以图形方式工作.这里解决警告的任何解决方案都没有创建超大视图,这使得在画布内工作几乎不可能?

画布截图

ull*_*trm 23

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

然后为"容器中的所有视图"选择"更新帧"

(我希望有一些方法可以对整个故事板进行此操作.至少我还没有找到它)


Sur*_*gch 20

选择一个视图,然后按

  • Option+ Command+=

这将更新帧大小.对所有违规视图重复此操作.它不需要那么长时间,特别是如果您通过单击错误消息找到它们.

感谢这个想法的答案.


笔记

更新到Xcode 8后,选择一些View作为设备,我收到此错误.菜单与Xcode 7不同,因此@ Spoek的答案不再有效.此外,单击更新或重置不适合我.

在此输入图像描述

更新

更新帧现在有自己的按钮.这就是我以前错过它的原因.

在此输入图像描述


Ale*_*cur 8

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

在此输入图像描述

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

在此输入图像描述