Xcode 5布局错误 - 标签错位视图框在运行时会有所不同

时间:2013-09-11 11:10:38

标签: ios objective-c xcode layout xcode5

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

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

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

Misplaced View Frame for "Label - Symbol:" will be different at run time. 4个控件包括此Label和另一个,Text Field和Scroll View。

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

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

谢谢!

7 个答案:

答案 0 :(得分:45)

如果您仍在寻找答案,答案很可能是您在AutoLayout视图中没有约束或不正确的约束。

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

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

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

有关自动布局的详细信息,您可以看到Apple's documentation

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

enter image description here

答案 1 :(得分:15)

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

答案 2 :(得分:3)

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

编辑器 - >解决Autolayout问题 - >清除ViewController中的所有约束,您就完成了。

答案 3 :(得分: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没有出现问题。

答案 4 :(得分:0)

Xcode现在适用于父视图的相对位置。您可以更正它们以单击橙色线并单击标记并选择使用故事板值或其他

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

我在View controlller中添加的两个文本字段中也遇到了同样的错误。帮助我解决问题的原因是: 在文档大纲中,我 Ctr +将第一个文本字段拖动到视图并选择在容器中水平居中。然后我 Ctr +将第二个文本字段拖到视图中,然后选择在容器中垂直居中。 希望这对你也有帮助。