-2

我想制作一个通用应用程序,适用于支持 iOS 5 的 iPhone 和支持 iOS 6 及更高版本的 iPad

是否可以使用相同的 Xcode 项目/应用程序构建来做到这一点?

我想在需要 iOS 6 或更高版本的 iPad 版本中使用UICollectionViewwith UICollectionViewWaterfallLayout

4

4 回答 4

2

这是不可能的,因为部署目标适用于两种设备;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)
于 2013-08-07T07:36:57.880 回答
2

您可以通过使用下面的一些宏检查操作系统版本,从而在单个应用程序中同时使用这两种东西

#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
}

我希望这会是你。谢谢。

于 2013-08-07T07:43:05.733 回答
1

这是不可能的。您只能为一个 App 定义一个基础 SDK 和一个部署目标。

于 2013-08-07T07:36:20.940 回答
1

简而言之,,这是不可能的。

于 2013-08-07T07:36:40.423 回答