Цвета панели навигации iOS 7 не отображаются должным образом на iPhone 4

Цвета моей панели навигации отображаются нормально в iOS 7

Развертывание iOS 6.0, но если системная версия iOS 7.0 или более поздняя, ​​некоторые цвета панели навигации не отображаются должным образом на iPhone 4. Работает нормально на iPhone 5.

Вот как я это делаю:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
    [self.navigationController.navigationBar setBarTintColor:[UIColor blueColor]];
    [self.navigationController.navigationBar setTranslucent:YES];
}


#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

Возможно, последняя строка - это проблема (setTranslucent), поскольку я слышал, что у iPhone 4 есть некоторые проблемы с полупрозрачностью, но я уверен, что в iOS 6 вы также можете установить прозрачность навигационной панели. Попробую избавиться от этого дальше и обновить, если что-нибудь исправит.

РЕДАКТИРОВАТЬ: похоже, цвет полосы исчезает после того, как я отклонить представленный контроллер представления. Но это ни к чему не приводит, кроме iPhone 4.

1 ответ

Решение

Избавиться от [self.navigationController.navigationBar setTranslucent:YES]; и это должно работать нормально.

Если вы хотите, вы можете проверить модель устройства (см. Здесь: Определение устройства (iPhone, iPod Touch) с помощью iPhone SDK)

и настроить вид соответственно.

Другие вопросы по тегам