我刚刚在 iOS 6 上完成了一个应用程序并在一周前购买了一个开发者帐户,所以没有太多时间玩 iOS 7 SDK。刚刚下载了 Golden Master 版本并尝试升级我的应用程序以与 iOS 7 兼容。
我收到很多警告说
“标签 - 标签”的错位视图框架在运行时会有所不同。
而且我无法运行该程序。该项目包含 tableview,它正在解析和显示来自 RSS 的 XML 提要。
如何解决这个问题?
接受的答案将解决问题,但这不是一个好的解决方案,因为它会消除您的所有限制。如果您在约束上花费了数小时,请不要这样做。
如果您单击警告旁边的三角形,您可以获得错位的解释。然后你可以将框架移动到它应该在的位置。例如:
https://i.stack.imgur.com/L7SHz.png
在这种情况下,我只是将文本视图的 y 位置移动到 94,警告就会消失。这是因为我的一个约束条件会在应用程序运行时强制视图位于其他位置,但该位置与它当前在情节提要中的位置不同。
将框架移动到正确位置的另一种方法是单击情节提要中视图控制器名称旁边的警告,然后单击黄色警告标志,然后单击更新框架。
https://i.stack.imgur.com/eTZdU.png
https://i.stack.imgur.com/jBrqo.png
这两种方法不是破坏性的,也不会消除您的约束。如果有的话,它会表明您可能需要对您的约束进行细微的调整。
我有同样的问题,我得到以下来自 Apple 的回复:
您需要更新约束以匹配这些视图的框架。
我做了以下事情:
编辑器->解决自动布局问题->清除**视图控制器中的所有约束
然后我在视图中再次重新排序了我的对象。
PS:首先尝试Enrico的解决方案。
https://i.stack.imgur.com/m8JGt.png
请看意思:-
https://i.stack.imgur.com/dsbpz.png
您可以选择“更新框架”或“更新约束”并使用“重置为建议的约束”。这将解决有关错位视图的问题。不要拖放视图来调整布局。改为编辑适用的约束。如果您不清楚,请告诉我。
如果您在 xCode 中查找更新帧时遇到问题,可以这样做:
https://i.stack.imgur.com/vK6Fv.png
没有一个答案在所有情况下都有效。在 Xcode 的最新版本中,使用 UISearchBar,在 IB 中启用范围字段会使搜索字段显示为双倍高度(但不显示其下方的范围栏)。无论您是否向搜索字段添加高度约束(任何高度),您都会收到警告,即它是一个错位的视图,在运行时为 88 H,但在 IB 中为 44 H。更新帧(任何或所有帧)并不能解决它。似乎是 IB 中的一个错误。