UINavigationBar的图像大小是多少

时间:2013-09-17 04:46:34

标签: iphone ios navigationbar

有三种模拟器或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用于导航经典,但它在设备中看起来很小 iPhone(Retina 3.5英寸) 因此,当我使用nav.png时,它看起来更大 iPhone

1。什么是UINavigationBar的适当大小?

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

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"NavBar-iPhone.png"]forBarMetrics:UIBarMetricsDefault];

使用此代码将背景图像设置为导航栏无需担心尺寸iphone 3.5,iphone 4会自动调整。