Настройка UINavigationBar, как в приложении Fox News для iPhone - PullRequest
1 голос
/ 03 декабря 2010

Как можно выполнить настройки UINavigationBar? Это использует подклассы или категории?

Fox news iphone app

Меня интересуют 2 аспекта:

  1. Добавление изображения в NavBar (например, логотип FOXNEWS)
  2. Настройка кнопки «Назад» на «Показывает». (кнопка «Назад» обычно берет заголовок предыдущего представления в стеке, но в предыдущем представлении заголовок отсутствует.)

Заранее спасибо за любую помощь

Ответы [ 2 ]

7 голосов
/ 03 декабря 2010

Для приложения Fox News похоже, что они просто устанавливают оттенок панели навигации. Что касается логотипа Fox News, то, вероятно, это просто изображение в виде заголовка на панели навигации. Этот код входит в метод viewDidLoad контроллера представления:

[self.navigationController.navigationBar setTintColor:/* Custom color here */];

UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];
[self.navigationItem setTitleView:logoView];
[logoView release];

Чтобы настроить кнопку возврата, вам необходимо поместить ее в метод viewDidLoad контроллера предыдущего представления (т. Е. Того, к которому эта кнопка ведет обратно):

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Shows"
    style:UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationItem setBackBarButtonItem:backButton];
[backButton release];

Если вы хотите использовать полностью настраиваемое фоновое изображение для панели навигации вашего приложения, вам нужно создать собственную категорию UINavigationBar и нарисовать изображение в рамках метода drawRect:. Примерно так:

@implementation UINavigationBar (UINavigationBarBackgroundImage)

- (void)drawRect:(CGRect)rect
{
    [[UIImage imageNamed:@"navigation-bar"] drawInRect:rect];

    // Optionally you can set the tintColor here to go with the background
}

@end
0 голосов
/ 03 декабря 2010

при добавлении изображения на панель навигации используйте этот код

- (void)drawRect:(CGRect)rect {

UIColor *color = [UIColor blackColor]; //this use to set button color in FoxNew Site //button color
UIImage *img  = [UIImage imageNamed: @"ImageName"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = color;

}

создать категорию для UINavigationBar

@implementation UINavigationBar (UINavigationBarCategory)
    - (void)drawRect:(CGRect)rect {
     }

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...