1

我对 .I 的用法感到困惑AutoLayout。我不明白什么时候使用它,什么时候不使用它。我正在 Xcode 4.5 中开发一个应用程序,当我在以前版本的模拟器(4.3,5.0)等上测试它时,应用程序崩溃了这个例外“

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint "

我浏览了谷歌,发现Use AutoLayout在 xib 中检查时会发生这种情况。

但是当我取消选中这个时,Use Autolayout我没有得到任何异常。

但是当我在retina4英寸中测试应用程序时,我没有从顶部开始获得视图的内容。它从中间开始。我的意思是说在测试非视网膜和视网膜时设计是不一样的。所以为此我一直保持'Use AutoLayout'处于checked状态。

我该怎么做才能满足我的两个条件?我需要让它与所有版本的模拟器兼容......

任何帮助都将不胜感激/感激...

4

3 回答 3

0

对于 iPhone 5 的 4 英寸显示屏,您需要第三张默认图像 Def​​ault-568h@2x.png。否则,视图将被加装。要支持 iOS6 之前的 iOS 版本,您需要禁用自动布局选项,但这意味着,您必须正确设置自动调整掩码或/除此之外根据屏幕大小在代码中手动更新视图。

于 2013-03-29T07:36:02.343 回答
0

使用 Autolayout是 Apple 提供的一个选项,用于从 iOS 6.0 开始自动设置 nib 文件的布局。因此,如果您要支持低于该版本的 iOS 版本,操作系统将无法找到它,因此会导致崩溃。

因此,如果您仅支持 iOS 6.0 及更高版本,则可以使用它。

于 2013-03-29T07:38:34.143 回答
0

您可以为您的viewController加载不同的 XIB。对于3.5 英寸,请按照以下步骤操作

1. Select your xib, first unchecked auto-layout.
2. Select View object and in its property window, change size property and set it to Retuina 3.5 full screen.
3. Make changes in your code to load your XIB's for different devices.
于 2013-03-29T07:40:31.427 回答