iPad UINavigationController自定义栏背景图片

时间:2010-07-11 15:50:36

标签: iphone ipad uinavigationcontroller uinavigationbar

我正在尝试创建一个带有背景图像的UINavigationController ...

我在类的顶部有以下代码,我实现了UINavigationController。

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIImage *img = [UIImage imageNamed:@"header.jpg"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width,self.frame.size.height)];
}

@end

然后,在“viewDidLoad”函数中我的控制器的@implementation中,我有以下内容......

MainViewController *controller = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:controller];
self.navController = nav;
[nav release];

我知道我很接近,因为一切都工作得非常完美,除了图像高度为150像素,并且它被压缩到更小的尺寸(做一个self.frame.size.height的日志给我44.0000)但是从顶部按下了一定数量的像素...

我知道我很亲密,但如果有人能帮助我,我将非常感激。

谢谢,

- d

1 个答案:

答案 0 :(得分:1)

您确实需要使图像与导航栏的大小相同。不要试图这样做,除非你真的拥有 a UINavigationBar的艺术作品。

只要尺寸正确,此代码就可以使用:

- (void)drawRect:(CGRect)rect {
  [img drawInRect:rect];
}

要使用不同大小的导航栏支持不同的方向,只需发送-[UIApplication statusBarOrientation](我听过很多人-[UIDevice orientation]无法按预期工作,但我没有尝试过它)。