iPhoneはiOS 5対応、iPadはiOS 6以降対応のユニバーサルアプリを作りたい
同じ Xcode プロジェクト/アプリ ビルドでこれを行うことは可能ですか?
iOS 6以降が必要なiPad版でUICollectionView
使いたい。UICollectionViewWaterfallLayout
iPhoneはiOS 5対応、iPadはiOS 6以降対応のユニバーサルアプリを作りたい
同じ Xcode プロジェクト/アプリ ビルドでこれを行うことは可能ですか?
iOS 6以降が必要なiPad版でUICollectionView
使いたい。UICollectionViewWaterfallLayout
展開ターゲットは両方のデバイスを対象としているため、これは不可能です。アイフォンだけでなくアイパッドも。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)
不可能です。アプリに対して 1 つのベース SDK と 1 つのデプロイ ターゲットのみを定義できます。
簡単に言えば、それは不可能です。