iPad UINavigationController Пользовательская панель Фоновое изображение - PullRequest
2 голосов
/ 11 июля 2010

Я пытаюсь создать UINavigationController с фоновым изображением ...

У меня есть следующий код в верхней части класса, где я реализую UINavigationController.

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIImage *img = [UIImage imageNamed:@"header.jpg"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width,self.frame.size.height)];
}

@end

Затем внутри моего @implementation моего контроллера в функции "viewDidLoad" у меня есть следующее ...

MainViewController *controller = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:controller];
self.navController = nav;
[nav release];

Я знаю, что я близко, потому что все работает почти идеально, за исключением того, что изображение имеет высоту 150px и уменьшается до меньшего размера (ведение журнала self.frame.size.height дает мне 44,0000) но отталкивается на определенное количество пикселей сверху ...

Я знаю, что я близко, но если бы кто-нибудь мог мне помочь, это было бы очень признательно.

Спасибо,

- д

1 Ответ

1 голос
/ 11 июля 2010

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

Этот код будет работать, если размеры верны:

- (void)drawRect:(CGRect)rect {
  [img drawInRect:rect];
}

Чтобы поддерживать разные ориентации с помощью навигационных панелей разного размера, просто отправьте -[UIApplication statusBarOrientation] (я слышал от многих людей, что -[UIDevice orientation] не работает должным образом, но я не пробовал).

...