0

我正在开发一个具有自定义导航栏的 iPhone 应用程序。这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *testNav = [UIImage imageNamed:@"Test Nav Bar 320 wide.png"];
    [self.navigationController.navigationBar setBackgroundImage:testNav forBarMetrics:UIBarMetricsDefault];
}

当我运行应用程序时,它看起来很好。但是,我也有一个视网膜版本的导航栏。当我更换:

@"Test Nav Bar 320 wide.png"

与视网膜图形:

@"Test Nav Bar 640 wide.png"

导航栏变得太大并跑出屏幕。

我究竟做错了什么?是否与以下内容有关:

forBarMetrics:UIBarMetricsDefault

我对 iOS 开发相当陌生,任何帮助将不胜感激。

4

1 回答 1

0

Apple 使用图像命名约定,允许系统轻松识别用于不同平台的图像(例如 Retina 与非 Retina、iPad 与 iPhone),而无需用户付出任何努力(除了提供图像)。

在您的情况下,只需命名您的图像navbar.png和 Retina 版本navbar@2x.png。使用 启动您的图像[UIImage imageNamed:@"navbar.png"],系统将自动选择正确的图像(即使您从未navbar@2x.png在任何地方提及!)。

于 2013-07-09T16:33:24.373 回答