【问题标题】:UINavigationBar - Setting background image?UINavigationBar - 设置背景图片?
【发布时间】:2012-03-07 11:16:15
【问题描述】:

所以我有一个 UINavigationController 的类别,我重写了下面的 init 方法

- (id)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
            UIImage *image = [UIImage imageNamed:@"navBar.png"];
            [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];      
    }

        return self;
}

以下代码使导航栏的背景图像变为空白(白色)。 图像名称正确,并且存在于项目中。知道是什么导致了这个问题吗?

【问题讨论】:

    标签: ios ipad uinavigationcontroller uinavigationbar


    【解决方案1】:

    如果你使用iOS4,可以覆盖-(void)drawRect

    @implementation UINavigationBar (UINavigationBarCategory)
    
    - (void)drawRect:(CGRect)rect
    {
        UIImage *navBg = [UIImage imageNamed:@"navBar.png"];
        [navBg drawInRect:rect];
    }
    @end
    

    iOS 5,

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 5.0) {
        if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
    
            UIImage *navBarImg = [UIImage imageNamed:@"navBar.png"];
    
            [self.navigationController.navigationBar setBackgroundImage:navBarImg forBarMetrics:UIBarMetricsDefault];
    
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多