Структура следующая:
В моей раскадровке у меня есть Tab Bar Controller
который содержит объект Tab Bar
. Этот объект имеет собственный класс, в котором у меня есть только этот метод:
- (void)awakeFromNib
{
NSArray *imageNames = @[@"test1", @"test2", @"test3", @"test4", @"test5"];
for (int i=0; i<5; i++) {
UITabBarItem *item = [self.items objectAtIndex:i];
NSString *imageName = [imageNames objectAtIndex:i];
item.image = [[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item.selectedImage = [UIImage imageNamed:[imageName stringByAppendingString:@"-selected"]];
}
}
Я создал Asset Catalog
который содержит значки панели вкладок, как выбранные, так и невыбранные версии (разные цвета).
В документации для UIImageRenderingModeAlwaysOriginal
упоминается Всегда рисовать исходное изображение, не рассматривая его как шаблон. который должен сохранить исходный цвет изображения. Похоже, этого не произошло, и это предложение не сработало.
Вместо этого происходит то, что в выбранном состоянии мои значки панели вкладок получают синий оттенок по умолчанию.
Одна вещь, которую я заметил, это то, что если я сделаю следующее (взято отсюда) в didFinishLaunchingWithOptions
в AppDelegate
, то я могу установить цвет значков выбранной панели вкладок, как я хочу:
[[UITabBar appearance] setTintColor:[UIColor purpleColor]];
Документация для setTintColor
упоминает:
Цвет оттенка, применяемый к элементам панели вкладок панели вкладок. Начиная с iOS 7.0, цвет оттенка, который применяется к элементам панели вкладок панелей вкладок, является первым нецветным оттенком цвета в иерархии представления, начиная с самой панели вкладок.
Означает ли это, что независимо от цвета значков панели вкладок (оригинал на самих изображениях), в выбранном состоянии они всегда будут иметь цвет tintColor
?
Или я что-то делаю не так/что-то упустил?
У меня эта проблема на iOS 7.0 и 7.1.