我想制作一个通用应用程序,适用于支持 iOS 5 的 iPhone 和支持 iOS 6 及更高版本的 iPad
是否可以使用相同的 Xcode 项目/应用程序构建来做到这一点?
我想在需要 iOS 6 或更高版本的 iPad 版本中使用UICollectionView
with UICollectionViewWaterfallLayout
。
我想制作一个通用应用程序,适用于支持 iOS 5 的 iPhone 和支持 iOS 6 及更高版本的 iPad
是否可以使用相同的 Xcode 项目/应用程序构建来做到这一点?
我想在需要 iOS 6 或更高版本的 iPad 版本中使用UICollectionView
with UICollectionViewWaterfallLayout
。
这是不可能的,因为部署目标适用于两种设备;iPhone 和 iPad。如果您将其设置为 5.0,则两者都将支持至少 iOS 5.0。你不能为个人设置它。
如果您想设置完全不同的布局,那么在加载控制器时,您可以检查设备的 iOS 版本和设备类型。为此,您必须使用不同的视图控制器。
例如
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0") && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//load controller with UICollectionView layout
}
else
{
//load simple layout controller
}
上面的宏是从以下引用的。抓住它们,因为它们对整个应用程序非常有用。将它们写入 .pch 文件。
#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)
您可以通过使用下面的一些宏检查操作系统版本,从而在单个应用程序中同时使用这两种东西
#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_LESS_THAN(@"6.0")){
//Do your stuffs that supports below 6.0
}else if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")){
//Do your stuffs that supports => 6.0
}
我希望这会是你。谢谢。
这是不可能的。您只能为一个 App 定义一个基础 SDK 和一个部署目标。
简而言之,不,这是不可能的。