如何有条件地加载 iOS 7 和 iOS 6 的资产?

Posted

技术标签:

【中文标题】如何有条件地加载 iOS 7 和 iOS 6 的资产?【英文标题】:How do I conditionally load assets for iOS7 and iOS6? 【发布时间】:2013-09-24 20:07:23 【问题描述】:

所以我正在阅读过渡指南,如果我使用情节提要,我可以有条件地为 ios6 或 iOS7 加载资产。我正在使用它,但我不明白如何将资产加载到故事板中。

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/SupportingEarlieriOS.html

【问题讨论】:

【参考方案1】:

你可以使用这些:

/** iOS Version Comparisons */
#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)


if ( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") ) 
    // do something for iOS 7
else
    // do something for iOS 6, 5, 4

你也可以这样使用:

[myButton setBackgroundImage:( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") ? @"image_ios7" : @"image_ios6" )];

【讨论】:

我明白了,我的问题是我有两个资产,一个用于 iOS7,一个用于 iOS6,两者都尊重同名资产。如果它在 iOS7 上,我希望能够告诉情节提要使用一种资产,如果它是 iOS6 及更低版本,则使用另一种资产。 好吧,我试图避免通过代码加载东西。我几乎通过故事板进行了所有设置。 最好的方法是编程。

以上是关于如何有条件地加载 iOS 7 和 iOS 6 的资产?的主要内容,如果未能解决你的问题,请参考以下文章

应用程序支持 iOS 6 和 iOS 7

我可以同时支持 iOS 6 和 iOS 7 吗?

如何按范围分组,或有条件地从查询结果中选择

IOS设置和加载多个/长测试条件

如何在同一应用程序中为 iOS 6 和 iOS 7 版本设置默认启动图像

如何在 Xcode 5 中使用不同的图像 iOS 6 和 iOS 7 [关闭]