Изменить цвет панели навигации, панели вкладок - PullRequest
1 голос
/ 23 октября 2010

как изменить цвет панелей навигации, панелей вкладок?

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

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

Есть советы? как сделать градиент?

1 Ответ

4 голосов
/ 23 октября 2010

Для панели навигации вы можете использовать:

[navigationController.navigationBar setTintColor:[UIColor redColor]; //Red as an example.

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

И если вы хотите настроить его дальше, вы можете установить фон UINavigationBar для изображения путем его подклассификации.Вот так…

Заголовочный файл.

#import <UIKit/UIKit.h>

@interface UINavigationBar (CustomImage)

@end

Реализация файла.

#import "CustomNavigationBar.h"

@implementation UINavigationBar (CustomImage)

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx

{
    if([self isMemberOfClass: [UINavigationBar class]]){
        UIImage *image = [UIImage imageNamed:@"bar.png"];
        CGContextClip(ctx);
        CGContextTranslateCTM(ctx, 0, image.size.height);
        CGContextScaleCTM(ctx, 1.0, -1.0);
        CGContextDrawImage(ctx, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage);
    }else{
        [super drawLayer:layer inContext:ctx];
    }

}

@end

Затем в Интерфейсном Разработчике установитекласс от UINavigationBar до (в данном случае) CustomNavigationBar на вкладке «Идентичность».

Если вы слегка измените код, чтобы он стал подклассом UITabBar, он может работать с UITabBar, хотя я не пробовал.

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