Как добавить фоновое изображение на iphone Navigation bar?

метапочта имеет инструмент, метаотправляют

metasend -f mysqlbackup.sql.gz -t backup@email.com -s Backup -m application/x-gzip -b
32
задан Cœur 6 October 2018 в 17:36
поделиться

4 ответа

Вот код из упомянутой ссылки @luvieere. Вставьте этот код в контроллер rootview чуть выше @implementation rootviewController

@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

Начиная с iOS 5, есть официальный способ сделать это. (см. Библиотека разработчика iOS )

// someplace where you create the UINavigationController
if ([navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    UIImage *image = [UIImage imageNamed:@"NavigationBar.png"];
    [navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

Но все же сохраните старый код для обратной совместимости, если вы действительно не хотите отказаться от iOS 4 и ниже.

98
ответ дан 27 November 2019 в 19:41
поделиться

Вы также можете добавить категорию, которая расширяет класс UINavigationBar и переопределить метод drawRect: в категории.

0
ответ дан 27 November 2019 в 19:41
поделиться

Ваш код сам по себе этого не сделает, вам придется написать категорию, чтобы он работал. Есть два подхода к тому, как вы должны это делать: первый включает в себя превращение изображения в подпредставление вашего UINavigationBar и перенос его на передний план в каждом из ваших UIViewController метод viewDidAppear . Однако сообщалось о некоторых проблемах с закрытием правого UIBarButtonItem . Другой метод предполагает переопределение

- (void) drawRect: (CGRect) rect

и рисование изображения там. Оба они подробно описаны в этом блоге обсуждение ..

32
ответ дан 27 November 2019 в 19:41
поделиться

Самый простой способ — установить содержимое слоя UINavigationBar.

NSString *barBgPath = [[NSBundle mainBundle] pathForResource:@"mybgimage" ofType:@"png"];
[nBar.layer setContents: (id)[UIImage imageWithContentsOfFile: barBgPath].CGImage];

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

9
ответ дан 27 November 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: