0

iPhone 5 の画面に収まるようにする必要があるビューを使用していますが、正しいレイアウトを取得できないようです。これを試してみました。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ) 
    {
        if (IS_IPHONE5) {
            NSLog(@"iPhone 5");

            [SelectionPhotoOptionView setFrame:CGRectMake(470, 0, 640, 568)];
            [SelectionButView setFrame:CGRectMake(0, 0, 640, 568)];
            [imageViewSelection setFrame:CGRectMake(0, 0, 640, 568)];
            [imageViewPhotoOption setFrame:CGRectMake(-470, 0, 640, 568)];
            ButtonYpos=612;

        } else {

            NSLog(@"iPhone 4 and Lower");

        [SelectionPhotoOptionView setFrame:CGRectMake(470, 0, 320, 480)];
        [SelectionButView setFrame:CGRectMake(0, 0, 320, 480)];
        [imageViewSelection setFrame:CGRectMake(0, 0, 320, 480)];
        [imageViewPhotoOption setFrame:CGRectMake(-470, 0, 320, 480)];
        ButtonYpos=412;
    }

上の部分が間違っています。iPhone 5 が正しくレイアウトされていません。使用するためのより適切なコード例を教えてもらえないでしょうか?

ありがとう、クリス

4

3 に答える 3

0

次の手順で画面の高さを確認します。

        screenRect = [UIScreen mainScreen].bounds;
        screenHeight = screenRect.size.height;
        if( screenHeight == 568){
            NSLog(@"iPhone 5");
         }
        else NSLog (@"iPhone 4s or below");

画面サイズに基づいてフレームを設定するときは、Nav バーがある場合は (デフォルトで約 40px)、ステータス バーが 10px であると考えていることを確認してください。

また、幅は 320px のままで、OS は Retina ディスプレイ用に自動調整します。

于 2013-04-26T19:01:53.233 に答える
0

iphone4 と iphne5 用に 2 つの .xib を用意するだけです。フレームを設定する必要はなく、適切な View/xib を押すだけで簡単です。お気に入り ......

//デバイスの互換性

    #define g_IS_IPHONE             ( [[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] )
    #define g_IS_IPOD               ( [[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"] )
    #define g_IS_IPAD               ( [[[UIDevice currentDevice] model] isEqualToString:@"iPad"] )
    #define g_IS_IPHONE_5_SCREEN    [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f
    #define g_IS_IPHONE_4_SCREEN    [[UIScreen mainScreen] bounds].size.height >= 480.0f && [[UIScreen mainScreen] bounds].size.height < 568.0f 

押したら画面を確認してください。

    if (g_IS_IPHONE_4_SCREEN) {
            styleDetailObj =[[StyleDetailViewController_iPhone alloc] initWithNibName:@"StyleDetailViewController_iPhone" bundle:nil];
     }
        else if (g_IS_IPHONE_5_SCREEN){
            styleDetailObj =[[StyleDetailViewController_iPhone alloc] initWithNibName:@"StyleDetailViewController_iPhone5" bundle:nil];
    }

    [self.navigationController pushViewController:styleDetailObj animated:NO];
于 2013-04-27T05:07:16.620 に答える