0

我有一个包含许多视图的应用程序。每个视图都由故事板中的导航控制器控制。我想使用自定义图像作为导航栏。我已经创建了图像,但不确定实现它的过程。编码:

@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

似乎不起作用。我将此代码放在视图控制器中。我应该使用不同的方法来设置视图控制器还是为导航控制器设置单独的控制器?如果是这样,我该怎么做?

这是故事板中的布局:

在此处输入图像描述

谢谢你。

4

2 回答 2

3

不确定这是否适合你的情况 100% 但你至少可以用这样的图像覆盖导航栏......

self.navigationItem.titleView = [[UIImageView alloc] initWithImage: navBarImage];

图像将在标题通常显示的位置居中,但如果它足够大,它将覆盖整个导航栏。

于 2012-09-07T01:38:26.113 回答
3

由于您使用的是 iOS 5,因此您可以这样做:

UIImage *image = [UIImage imageNamed:@"topbar"];
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

您不需要子类,可以使用常规 UINavigationBar。

于 2012-09-07T01:40:16.417 回答