Изменение фонового изображения UINavigationBar

Я пытался изменить фоновое изображение UINavigationBar моего приложения. Я пробовал несколько способов. Сначала я добавил в свой класс AppDelegate следующий код:

@implementation UINavigationBar (CustomImage)
    - (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"navigationbar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

Но он не работал. Следующей моей попыткой было написать класс CustomizedNavigationBar, который переопределяет метод drawRect . Это выглядело так:

CustomizedNavigationBar.h

#import <UIKit/UIKit.h>

@interface CustomizedNavigationBar : UINavigationBar

@end

CustomizedNavigationBar.m

#import "CustomizedNavigationBar.h"

@implementation CustomizedNavigationBar

- (void) drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"navigationbar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

    NSLog(@"I got called!!!!!");
}

@end

В моем файле .xib, где определена панель навигации, я изменил класс на новый CustomizedNavigationBar. Но все равно не работает ..

В качестве еще одного теста я скачал пример проекта, в котором нужно изменить фоновое изображение. Но даже с этим образцом кода он не работал.

Что я делаю не так? Я использую IOS 5. Есть ли предложения или другие способы определения фонового изображения?

Спасибо за ваши ответы!

22
задан Prine 14 October 2011 в 08:35
поделиться