0

現在iphoneアプリを作成中です。しかし将来的には、このアプリは iPad でも利用できるようになるはずです。現時点ではストーリーボードを使用しています。この方法で iPad でも利用できるようにするのは非常に簡単だからです。

私の質問は、長いプロフィールフォームのようないくつかのビューで、スクロールビューの中に入れます。ただし、ストーリーボード内に scrollviews レイアウトを構築することはできないため、コードで作成しました。しかし、このビュー レイアウトを iPad でも利用できるようにするにはどうすればよいでしょうか?

iPad 用のレイアウト コードを書き直してから、デバイス検出を行う必要がありますか? ベストプラクティスは何ですか?

4

3 に答える 3

2

ハードウェアを検出し、別のレイアウトコードを書く方が良いと思います。
Appleのマクロを使用できます。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
     // Write your layout code for iPad there
}
else
{
     // Write your layout code for iPhone/iPod there
}
于 2012-12-26T14:58:35.747 に答える
0

以下はあなたに役立ちます。

#define IS_IPHONE ( [[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] )
#define IS_IPOD   ( [[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"] )
#define IS_IPAD   ( [[[UIDevice currentDevice] model] isEqualToString:@"iPad"] )
#define IS_IPHONE_5_SCREEN [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f
#define IS_IPHONE_4_SCREEN [[UIScreen mainScreen] bounds].size.height >= 480.0f && [[UIScreen mainScreen] bounds].size.height < 568.0f


if(IS_IPHONE_5_SCREEN)
{
    if(IS_IPHONE)
        NSLog(@"Hey, this is an iPhone 5 screen!");
    else if(IS_IPOD)
        NSLog(@"Hey, this is an iPod 5 screen!");
    else
        NSLog(@"Hey, this is a simulator screen with iPhone 5 screen height!");
}
else if(IS_IPHONE_4_SCREEN)
{
    if(IS_IPHONE)
        NSLog(@"Hey, this is a lower iPhone screen than 5!");
    else if(IS_IPOD)
        NSLog(@"Hey, this is a lower iPod screen than 5!");
    else
        NSLog(@"Hey, this is a lower simulator screen than 5!");
}
else if(IS_IPAD){
    NSLog(@"Hey, this is an iPad screen!");
}
else{
    NSLog(@"Hey, this is an ipad simulator screen!");
}

乾杯!

于 2012-12-27T05:08:12.480 に答える
0

解決策はかなり単純でした。まず、ストーリーボード内にスクロールビューを作成できないと思いました。しかし、これは可能です!ここでその方法を見つけることができます。

解決策は、iPad 専用の別のストーリーボードを作成することです。

于 2012-12-27T09:45:55.460 に答える