18

我刚刚安装了 Xcode 5,目前正在准备我的应用程序,以便下周在 iOS 7 上发布到 App Store。我收到一大堆错误和警告。

在一个应用程序中,我有一个 UIPickerView、UITextFields 和一堆 UILabel。在这个应用程序中,它Illegal Configuration在情节提要文件中的几乎所有控件上都会出现(红色)错误。我不知道那个错误是什么或如何解决它。我将不胜感激。我无法完全重新创建文件,因为有 20 个复杂的视图。

在另一个应用程序中,有一个 UIScrollView,其中包含一堆 UILabel 和 UITextField,以及一个以编程方式创建的 UITextView,它包含基于您在(上一个视图)UITableView 中选择的内容以及调整自身大小以适应内容的文本。UIScrollView 调整大小以适应 UITextView 的新大小。这个编译和构建并且 UITextView 被创建但不包含文本,可能是因为它现在调整大小不正确。UIScrollView 现在除了不应该垂直滚动之外,还可以水平滚动。这个只给出(黄色)警告,都说:

Misplaced View Frame for "Label - Symbol:" will be different at run time. 用于 4 个控件,包括此标签和另一个、文本字段和滚动视图。

我将不胜感激任何帮助,因为这是我第一次适应新版本的 Xcode 和 iOS。

PS:Illegal Configuration错误的详细信息包括:
Auto Layout on iOS Versions prior to 6.0

谢谢!

4

7 回答 7

45

如果您仍在此处寻找答案,则答案很可能是您的 AutoLayout 视图上没有约束或约束不当。

您可以通过选择视图并转到 Xcode 菜单选项来解决此问题:Editor -> Resolve Auto Layout Issues -> Add Missing Constraints / Reset to Suggested Constraints.

您还可以选择整个布局并执行相同的操作,这会将布局上的所有视图重置为推荐的约束。

如果您需要自定义约束,则必须在 Storyboard/XIB 文件中或在代码中手动设置自己的自动布局约束。

有关自动布局的更多信息,您可以查看Apple 的文档

最后,如果您希望它按原样显示,您也可以关闭布局上的自动布局,而不自动重新调整(不推荐这样做)。

在此处输入图像描述

于 2013-09-22T03:10:10.557 回答
15

Reset to Suggested Constraints有时并没有摆脱这个警告。解决方案是在相关 UIView 的大小检查器的下拉菜单中进行Placeholder选择Intrinsic Size。然后根据需要添加缺少的约束。

于 2013-10-31T02:00:00.203 回答
3

只需选择您的视图控制器 转到

Editor-->Resolve Autolayout issues--> Clear All Constraints in ViewController 就完成了。

于 2013-11-21T06:52:50.230 回答
2

关于框架“标签框架在运行时会有所不同”——请参阅 Autolayout: Runtime 下的发行说明。

https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/index.html#//apple_ref/doc/uid/TP40001051

取消 NDA 后将在此处显示完整答案。

注意:这也发生在 Xcode 4.2 下,但是 IB 没有发现这个问题。

于 2013-09-11T13:25:59.247 回答
0

Xcode 现在可以相对于父视图使用相对位置。您可以更正它们以单击橙色线并单击标记并选择使用情节提要值或其他内容

于 2013-09-20T18:28:32.363 回答
0

或者,您可以完全关闭自动布局。

如果您想与 iOS 5 兼容,这种方法会派上用场。

于 2014-05-04T14:38:08.350 回答
0

我在视图控制器中添加的两个文本字段中也遇到了同样的错误。帮助我解决问题的是:在文档大纲中,我Ctr+将第一个文本字段拖到 View 并选择Center Horizo​​ntally in Container。然后我Ctr+将第二个文本字段拖到 View 并选择Center Vertically in Container。希望这对你也有帮助。

于 2016-04-21T13:38:48.450 回答