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

时间:2015-09-23 13:19:59

标签: ios xcode autolayout adaptive-layout

也许正在努力争取免费警告"项目是徒劳的,但我对自适应布局/自动布局很紧张,我不得不尝试并压制这些警告。

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

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

    详情请见下面的截图。

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

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

    Canvas screenshot

4 个答案:

答案 0 :(得分:22)

要摆脱警告,让约束“正确”放置视图,只需选择发出警告的视图,按下故事板右下角的小三角形: enter image description here

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

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

答案 1 :(得分:18)

选择一个视图,然后按

  • 选项 + 命令 + =

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

感谢this answer的想法。

备注

更新到Xcode 8后,选择一些View作为设备,我收到了这个错误。菜单与Xcode 7不同,因此@ Spoek的答案不再有效。另外,单击“更新”或“重置”对我不起作用。

enter image description here

<强>更新

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

enter image description here

答案 2 :(得分:8)

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

enter image description here

或Freeform,然后将尺寸更改为最适合您的尺寸。

enter image description here

答案 3 :(得分:0)

我在静态tableview单元上遇到此错误。我取消选中“自动”选项,警告消失了

enter image description here