17

重複の可能性:
iPhone 5(ワイドスクリーンデバイス)を検出する方法は?

現在のデバイスがiphone5であるかどうかを検出する方法はありますか?具体的には、新しい4インチ画面を使用している場合はどうでしょうか。

4

4 に答える 4

44

これを使って

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
于 2012-09-23T15:11:48.200 に答える
17

iPhone5 を検出するよりも、好みの表示モードに集中する必要があると思います。Apple がどのようなデバイスを製造するかは誰にもわかりませんが、ソフトウェアがそのモードをサポートしていれば、将来も保証されます。

BOOL isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));

将来的には、好みの表示モードをその場で変更したくなるかもしれません。たとえば、AppleTV を 720p テレビから切断し、もちろんアプリを再起動せずに 1080p に接続します。

于 2012-09-21T17:48:52.247 に答える
4

このコードを初期化に追加します。

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
     if(UIScreenOverscanCompensationScale==1136/640){
             //move to your iphone5 storyboard
             [UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
  }
     else{
             //move to your iphone4s storyboard
             [UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
  }
}

これは、別の質問here で私が投稿した回答です。

于 2012-09-21T20:38:57.207 に答える
2

次のコードをアプリケーションに追加します。

if ([UIScreen mainScreen].scale == 2.f && screenHeight == 568.0f)
    {// iPhone 5 code}
else
    {// previous version code}
于 2012-09-23T08:13:02.733 に答える