Как изменить цвет фона UINavigationController? - PullRequest
4 голосов
/ 15 февраля 2012

Я могу изменить фоновое изображение UINavigationController, переопределив drawRect: метод:

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {

    UIImage *img  = [UIImage imageNamed: @"navController.png"];
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
        self.tintColor = [UIColor blueColor];
}

@end

фон - это то, что я и хотел, и tintColor, но при попытке установить цвет, которого нет в классе UIColor, он не работает и показывает странный цвет:

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {

    UIImage *img  = [UIImage imageNamed: @"navController.png"];
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
        self.tintColor = [UIColor colorWithRed:(26/255) green:(103/255) blue:(159/255)                      alpha:1];
}

@end

Как заставить UINavigationBar показать нужный мне цвет?

Примечание: У меня проблема только с цветом кнопок контроллера навигации, поскольку сам фон установлен на изображение.

Ответы [ 2 ]

10 голосов
/ 15 февраля 2012

Вам нужно сделать это:

self.tintColor = [UIColor colorWithRed:(26.0f/255.0f) green:(103.0f/255.0f) blue:(159.0f/255.0f) alpha:1.0f];

В противном случае вы выполняете целочисленную арифметику, и для всех из них вы, вероятно, получите 0.Используйте арифметику с плавающей запятой, и вы получите желаемые значения.

8 голосов
/ 21 ноября 2013

Это работает для меня

self.navigationController.navigationBar.backgroundColor= [UIColor colorWithRed:57.0/255.0 green:158.0/255 blue:209.0/255 alpha:1.0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...