0

共有三个模拟器或 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;

}

我想知道导航图像、nav.png 和条件的适当大小,以便我可以在所有三种设备上工作。

因为我使用 320x44 的 nav classic,但它在 iPhone 设备中看起来很小(Retina 3.5 英寸) 所以,当我使用 nav.png 时,它看起来更大的iPhone

1. UINavigationBar 的合适尺寸是多少?

2. 使用它们的正确逻辑是什么?

谢谢

4

2 回答 2

1

iphone 3.5 Retina 和 iphone 4 Retina 的导航栏大小没有区别。此 Retina 设备的实际图像尺寸为 640x88。您还可以为导航栏制作两张图像,一张为 320x44(用于非视网膜设备),一张为 640x88。您必须将此图像命名为 NavImage.png 和 NavImage@2x.png ,这样操作系统将自动使用正确的图像。

于 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 回答