将图像添加到导航栏时,为什么会出现左/右间隙?

时间:2010-02-24 15:10:12

标签: iphone uiimageview uiimage navbar navigationbar

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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