1

画面サイズを使用してどのように検出できるのか疑問に思っていますiPhone5です。iPhone5で3.5インチのインターフェイスを使用している現在のアプリケーションなので、コードを使用したとき

CGSize結果=[[UIScreenmainScreen]境界].size;

これにより、画面サイズの高さが568ではなく400になりました。これは、iPhone 5で3.5インチのインターフェイスを使用しているためです。アプリケーションのレイアウトを変更する必要があることはわかっていますが、時間の制約があるため、そのままにしておきたいと思いました。

または、実際のピクセルを取得するためにスケール係数を取得する必要がありますか

CGFloat screenScale =[[UIScreenmainScreen]スケール];

助けてください...

4

6 に答える 6

3

以下の条件でiphone、iphone5、iPadを簡単に検出できます:-

 if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone)
 {
     if ([[UIScreen mainScreen] bounds].size.height == 568)
     {


     }
     else
     {
         //iphone 3.5 inch screen
     }
 }
 else
 {
        //[ipad]
 }

このDetectデバイスタイプで私の答えにアクセスしてください

于 2012-12-11T04:49:31.440 に答える
1
instead of find hight you have to use following code to find your device is iPhone 5 or below iphone 5.

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
-(void)ViewDidLoad
{
   if(IS_IPHONE_5)
   {
      //code of iphone 5
   }
   else
  {
      //code of below iphone 5
  }
}
于 2012-12-12T05:06:22.263 に答える
1
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568)
   // 4-inch
else
   // 3.5-inch
于 2012-12-10T23:34:59.930 に答える
0

プロジェクトに新しいデフォルト画像を含むDefault-568h@2x.pngが含まれていない場合、iPhone5は通常の480x320の画面サイズを報告します。

このスレッドを読む iPhone5(ワイドスクリーンデバイス)を検出する方法は?

于 2012-12-10T23:38:43.743 に答える
0

レイアウトは、デバイスタイプをチェックせずにこれに適応できる必要があります。これは、Appleがフォームファクタを再度変更することを決定するとすぐに壊れます。

UIView自動サイズ設定を使用し(自動レイアウトとは異なりますが、これが利用できる場合はさらに良いです)、これでサブクラスやオーバーライドが不十分な場合-layoutSubviewsは、9パッチなどを使用します。これを行うと、デバイスがiPhone4またはiPhone5のいずれか。

于 2012-12-10T23:44:34.480 に答える
0

まず、アプリでiPhone 5の読み込み画像を指定するまで、iPhone 4のように実行され、[[UIScreen mainScreen] bounds] .sizeを呼び出すと{320、480}が返されます。

次に、境界を使用する必要があります。

CGSize screenSize = [[UIScreen mainScreen] bounds].size;

ステータスバーの高さも考慮する必要があります。

CGFloat statusBarHeight = ([UIApplication sharedApplication].statusBarHidden ? 0.0f : [UIApplication sharedApplication].statusBarFrame.size.height);

現在の向き(縦向きまたは横向き)に応じて画面の幅を取得する場合は、境界関数によって返される幅と高さを反転する必要があります。

if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
    screenSize = CGSizeMake(screenSize.height, screenSize.width);
}
于 2012-12-10T23:47:10.243 に答える