我正在开发一个具有自定义导航栏的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开发的新手,如果有任何帮助,我将不胜感激。
发布于 2013-07-10 00:33:24
苹果为图像使用了一个命名convention,允许系统轻松地识别针对不同平台的图像(例如视网膜和非视网膜,iPad和iPhone),而不需要用户做出任何努力(除了提供图像)。
在你的例子中,只需将你的图像命名为navbar.png和Retina version navbar@2x.png即可。使用[UIImage imageNamed:@"navbar.png"]启动镜像,系统会自动选择正确的镜像(即使您从未提及navbar@2x.png anywhere!)。
https://stackoverflow.com/questions/17553452
复制相似问题