如何在Xcode 5中将部署目标设置为5.1并使用自动布局?

3
我在Xcode 5中打开了我的当前4.6版本的项目。在iOS 7上,我的iPhone和iPad都可以正常工作。 但我想要使用Xcode 5开发一个兼容iOS 5及以上版本的应用程序。但是当我将部署目标设定为5.0并运行时,会显示更多的自动布局错误。如果取消勾选,它就能正常工作。但是,在这种情况下,我们无法在具有自动布局的iOS 6+上运行该应用程序。
之前,当我使用Xcode 4.6并将部署目标设置为5时,在编译时没有发现问题。异常只在运行时发生。因此,在这种情况下,我使用了一个单独的没有自动布局的Storyboard来适配iOS 5。
但在Xcode 5中,我不能使用这种方法,因为在编译时会出现错误。那么我该如何解决?

自动布局在iOS5中不可用,因此出现错误。苹果在iOS6中引入了自动布局。 - Puneet Sharma
1
简短回答:你不能。在较低的SDK上无法使用存在于更高SDK中的类。 - CodaFi
1
如果你想让你的代码在iOS5和iOS6+上都能运行,你可以编写自动布局代码并放置一个编译器宏来检查操作系统版本。因此,每个自动布局代码必须用编译器宏语句包装,以确保它仅针对iOS 6+进行编译。但如果你问我,那将是一团混乱。 - abbood
1个回答

1

在iOS 5上无法使用自动布局。这很简单。iOS 5没有自动布局类,因此在iOS 5设备上启动应用程序时会出现错误。

您需要关闭xibs和storyboards中的自动布局,设置弹簧和支架,并根据需要编写layoutSubviewsviewDidLayoutSubviews以正确布局您的视图。

由于您必须使应用程序在没有自动布局的情况下正常工作,因此在可用时也没有必要使用自动布局。尝试仅在某些设备上使用自动布局将意味着更多的代码、更多的测试和更多的混乱。要么将部署目标更改为iOS 6.0并只使用自动布局,要么在所有版本的iOS上使用旧的布局系统。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接