1
UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

我正在尝试将图像添加到我的导航栏,但是当我使用上面列出的代码时,它将图像放入导航栏中,但在图像的左侧和右侧留下了灰色间隙。该图像是在 320x44 下创建的,尽管我正在设置框架,但我不确定它为什么要调整它的大小。

4

1 回答 1

2

那是……可能不是你想要的方式——这不是 thetitleView的用途。自定义导航栏背景的常用方法是在 上创建一个类别UINavigationBar,如下所示:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

将其放入项目的 .m 文件中,您应该会看到所有导航栏都使用“my-navigation-background.png”作为背景。

于 2010-02-24T15:19:48.597 回答