0

以下に示すように、3 つのシミュレータまたは iPhone デバイスがあります。

iPhone

iPhone (Retina 3.5 inch)

iPhone (Retina 4 inch)

ナビゲーションバーに次のメソッドを実装したいと思います。

- (UINavigationController *)navigationController {

    nav = [[UINavigationController alloc]
           initWithRootViewController:[self demoController]];

    // If Iphone/iPod Touch
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        // If iPhone 5 or new iPod Touch

        NSLog(@"The height is %f ", [UIScreen mainScreen].bounds.size.height );

        NSLog(@"The width is %f ", [UIScreen mainScreen].bounds.size.width);


        if([UIScreen mainScreen].bounds.size.height == 568){
            [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics: UIBarMetricsDefault];
        } else{
            // Regular iPhone
            [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_classic.png"] forBarMetrics: UIBarMetricsDefault];

        }
    }

    return nav;

}

3つのデバイスすべてで作業できるように、ナビゲーション画像、nav.png、および状態の適切なサイズを知りたいです。

nav classic に 320x44 を使用しましたが、デバイス iPhone (Retina 3.5 インチ) では小さく見えます

1. UINavigationBar の適切なサイズは?

2. それらを使用するための適切なロジックは何ですか?

ありがとう

4

2 に答える 2

1

iPhone 3.5 Retina と iPhone 4 Retina のナビゲーション バーのサイズに違いはありません。この Retina デバイスの画像の実際のサイズは 640x88 です。ナビゲーション バー用に 320x44 (非 Retina デバイス用) と 640x88 の 2 つの画像を作成することもできます。この画像に NavImage.png や NavImage@2x.png のような名前を付ける必要があります。これにより、OS は正しい画像を自動的に使用します。

于 2013-09-18T06:48:46.663 に答える
0
[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"NavBar-iPhone.png"]forBarMetrics:UIBarMetricsDefault];

背景画像をナビゲーションバーに設定するためにこのコードを使用しました。iPhone 3.5、iPhone 4 のサイズを気にする必要はありません。自動的に調整されます。

于 2013-09-17T04:50:44.007 に答える