2010-07-11 57 views
2

我想创建一个背景图像的UINavigationController ...iPad的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

你真的需要真正使您的图像大小相同的导航栏。不要试图做到这一点,除非你真的有艺术 a UINavigationBar

此代码将工作,只要尺寸是正确的:

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

为了支持不同的方向具有不同大小的导航栏,只需发送-[UIApplication statusBarOrientation](我已经从很多人听说-[UIDevice orientation]不按预期工作,但我没有尝试过)。

+0

不是我想要的解决方案:(但我很感谢帮助! 希望这是可能的 – dewberry 2010-07-12 17:53:37