【问题标题】:Using Image as Navigation Bar iOS 5使用图像作为导航栏 iOS 5
【发布时间】:2012-09-07 01:29:50
【问题描述】:

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

@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

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

这是故事板中的布局:

谢谢。

【问题讨论】:

  • 这会被调用吗?是不是View本身中的drawRect,不在ViewController中?

标签: iphone ios uinavigationcontroller


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,或者 viewWillAppear: 方法。
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多