OStack程序员社区-中国程序员成长平台

标题: iphone - 在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:32
标题: iphone - 在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局

如果我的项目支持 iOS 4.3 及更高版本,我如何在 iOS6 only 中启用自动布局,但在较低版本中禁用它?



Best Answer-推荐答案


如果您使用 Storyboard ,请创建两个 Storyboard ,一个开启自动布局,另一个关闭自动布局。然后一种检查方法是根据操作系统版本加载任何一个。

我用了这个小宏

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] comparev) options:NSNumericSearch] != NSOrderedAscending)

这也应该有效(在某些情况下可能比上面更好):

if ([NSLayoutConstraint class]) {
    //   >= 6.0
} else {
    //   < 6.0
}

然后在我的 appDelegate 中:

UIStoryboard *mainStoryboard = nil;

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) 
{
     mainStoryboard = [UIStoryboard storyboardWithName"AutoLayoutStoryboard" bundle:nil];
} 
else 
{
     mainStoryboard = [UIStoryboard storyboardWithName"NoAutoLayoutStoryboard" bundle:nil];
}

//load initial view controller
UIViewController *rootView = [mainStoryboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = rootView;
[self.window makeKeyAndVisible];

添加:如果您正在使用 nib,并且只想为 iOS6 启用自动布局,您可以创建一个启用自动布局的 Storyboard(或 nib),并使用上述版本检查加载它们

关于iphone - 在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14371951/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4