Как скопировать кнопку возврата? - PullRequest
4 голосов
/ 05 мая 2011

Я понимаю, что единственный способ изменить цвет текста кнопки «Назад» - создать собственную кнопку:

self.navigationItem.backBarButtonItem = yourCustomBackButton;

У меня вопрос: как мне создать кнопку возврата, которая учитывает цвет оттенка и выглядит точно так же, как кнопка возврата по умолчанию, за исключением цвета текста (если он не белый)?

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Добавьте категорию в UINavigationBar и установите там цвет фона. Этот код также показывает, как использовать изображение.

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

/***
 // use a custom color
 UIColor *color = [UIColor colorWithRed:.455 green:.365 blue:0 alpha:.9];
 3    CGContextRef context = UIGraphicsGetCurrentContext();
 4    CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
 5    CGContextFillRect(context, rect);
 6    self.tintColor = color;
 ***/

// use a custom background image
UIImage *img  = [UIImage imageNamed: [PlistVariables sharedInstance].navbarBackgroundImageName ];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = [PlistVariables sharedInstance].navbarTintColor;
 }

Вот некоторые примеры вывода с использованием RGB 192,93,0 для фона коричневого цвета:

enter image description here

0 голосов
/ 22 декабря 2011

На самом деле невозможно изменить цвет текста кнопки «Назад».Однако вы можете назначить пользовательское представление свойству leftBarButtonItem.Я собрал простой маленький проект, показывающий, как это сделать, который воссоздает анимацию входа / выхода стандартного пользовательского интерфейса iOS.Требуется немного взломать, но вы должны быть в состоянии назначить кнопку с меткой в ​​ней для пользовательского представления и обновить ее.

...