我有一个由很多视图组成的应用。每个视图由故事板中的导航控制器控制。我想使用自定义图像作为导航栏。我已经创建了图像,但我不确定实现它的过程。代码:
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed: @"topbar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
似乎不起作用。我将此代码放在视图控制器中。我应该使用不同的方法来设置视图控制器还是为导航控制器设置单独的控制器?如果是这样,我该怎么做?
这是故事板中的布局:
谢谢。
答案 0 :(得分:3)
不确定这是否适合你的情况100%,但你至少可以用这样的图像覆盖导航栏......
self.navigationItem.titleView = [[UIImageView alloc] initWithImage: navBarImage];
图像将居中显示标题通常显示的位置,但如果图像大到足以覆盖整个导航栏。
答案 1 :(得分:3)
由于你使用的是iOS 5,你可以这样做:
UIImage *image = [UIImage imageNamed:@"topbar"];
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
您不需要子类,可以使用常规的UINavigationBar。