2016-04-12 3 views
0
- (UIStoryboard *)grabStoryboard { 
    // determine screen size 
    int screenHeight = [UIScreen mainScreen].bounds.size.height; 
    UIStoryboard *storyboard; 

    switch (screenHeight) { 
     // iPhone 5 
     case 320: 
      storyboard = [UIStoryboard storyboardWithName:@"iPhone4Storyboard" bundle:nil] 
       ; 
      break; 
     // iPhone 6 
     case 375: 
      storyboard = [UIStoryboard storyboardWithName:@"iPhone6Storyboard" bundle:nil]; 
      break; 
     // iPhone 6 Plus 
     case 414: 
      storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
      break; 
     default: 
      // It's an iPad 
      storyboard = [UIStoryboard storyboardWithName:@"MainiPad" bundle:nil]; 
      break; 
    } 

    return storyboard; 
} 

私のアプリをiPhone 5,6,6 plusおよびiPadで動作させるために、このコードを使用します。今、私はそれがiPhone 4サイズ、またはむしろ3.5スクリーンをサポートするようにしたいと思います。どのようなコードを入れますか?また、Objective-Cコードは、迅速ではありません。別のストーリーボード用のiPhone 3.5サイズ?

Autolayoutはひどいので、回答は得られません。代わりにどのコードを使用しなければならないのか誰かが教えてくれる?

+0

は、自動レイアウトは、このアプリのためのオプションではありません試してみてください?これはすべてを避けるでしょう。 – fsb

+0

いいえ、私は自動レイアウトをしたくないので、代わりに何をすることができますか? –

+0

画面サイズに特有のストーリーボードを使用するあなたのアプローチを使用すると、保守がはるかに多くなり、サポートされているiPadでマルチタスクをサポートできなくなります。そして、Appleが別の画面サイズの新しいデバイスを発売するたびに、より多くの作業が行われます。 – rmaddy

答えて

0

この

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ 
      CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; 
      CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width; 

      if(screenHeight < screenWidth){ 
       screenHeight = screenWidth; 
      } 

    if(screenHeight > 480 && screenHeight < 667){ 
        //NSLog(@"iPhone 5/5s"); 

       } else if (screenHeight > 480 && screenHeight < 736){ 
        //NSLog(@"iPhone 6"); 

       } else if (screenHeight > 480){ 
        //NSLog(@"iPhone 6 Plus"); 

       } else { 
        // NSLog(@"iPhone 4/4s"); 

       } 
+1

6+について480の高さをチェックしているのはなぜですか? – rmaddy

関連する問題