-2

私は普遍的なプロジェクトを取りました。iPhone 5の画面用にコーディングしましたが、検出されません。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    //ui for ipad
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        tableView.frame = CGRectMake(0, 40, 320 ,508);
    }
    else {
        tableView.frame = CGRectMake(0, 40, 320 ,420);
    }
}

しかし、それは機能しません。iPhone5でコードをデバッグするとscreenBounds=320*480

どこが間違っているのですか?

4

7 に答える 7

3

iPhone5の画面を検出するのはとても簡単です, 書くだけ

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

あなたの.pchファイルで....そして、iPhone5の画面をさらに確認することができますif(IS_IPHONE5).

于 2013-03-20T09:35:07.143 に答える
1

UITableViewIB から選択し、メイン ウィンドウの xib ファイルを含め、すべての画面のサイズを選択しますRetina 4。これはiphone 4でも問題なく動作します。

ここに画像の説明を入力

于 2013-03-20T09:34:21.323 に答える
1

このコードは私にとってはうまくいきます

  #define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

    if (IS_IPHONE_5)
        {
 //iphone 5
    }
于 2013-03-20T11:20:22.437 に答える
1

iPhone 5.Default-568h@2x.pngファイルのスプラッシュスクリーンを追加すると、正常に動作します

于 2013-03-20T09:41:42.337 に答える
0

このコードを使用して、iPhone 5 デバイスをチェックしました。

float scrnheight = [[UIScreen mainScreen] bounds].size.height ;

if(scrnheight == 568.0f)
{
    self.isIphone5 = true;
}
于 2013-03-20T09:32:53.160 に答える
0

代わりに、これを使用して iPhone 5 を検出してみてください。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
   CGSize theHeight = [[UIScreen mainScreen] bounds].size;
   if(theHeight.height == 568) {
        // iPhone 5
        tableView.frame = CGRectMake(0, 40, 320 ,508);
   }
   else {
        // iPhone 4
        tableView.frame = CGRectMake(0, 40, 320 ,420);
   }
}

あるいは、これを定義することもできます:

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

iPhone 5かどうかを確認する必要があるときはいつでも再利用できます。

于 2013-03-20T09:34:04.413 に答える
0

このコードを試してください::

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
    [tableView setFrame:CGRectMake(0, 40, 320 ,508)];
}
else if ([[UIScreen mainScreen] bounds].size.height == 480)
{
    [tableView setFrame:CGRectMake(0, 40, 320 ,420)];
}

うまくいけば、それはあなたを助けるでしょう.

ありがとう。

于 2013-03-20T09:34:41.700 に答える