我正在尝试创建一个带有背景图像的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
答案 0 :(得分:1)
您确实需要使图像与导航栏的大小相同。不要试图这样做,除非你真的拥有 a UINavigationBar
的艺术作品。
只要尺寸正确,此代码就可以使用:
- (void)drawRect:(CGRect)rect {
[img drawInRect:rect];
}
要使用不同大小的导航栏支持不同的方向,只需发送-[UIApplication statusBarOrientation]
(我听过很多人-[UIDevice orientation]
无法按预期工作,但我没有尝试过它)。