Цвет строки состояния iPhone 6
Кто-нибудь заметил, что цвет строки состояния для симулятора iPhone 6 не использует правильный стиль?
я имею UIStatusBarStyle
установлен в UIStatusBarStyleLightContent
а также UIViewControllerBasedStatusBarAppearance
установлен в NO
,
Это прекрасно работает для всех телефонов на iOS8, кроме 6 и 6 Plus. В моем appDelegate я могу установить его с помощью UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
но это не устанавливает его для экрана запуска. Это все еще хочет темнота, когда я хотел бы легкого содержания. У кого-нибудь есть решение для этого. Есть ли новый пункт, который мне нужно добавить в список?
4 ответа
Один из вариантов - установить UIViewControllerBasedStatusBarAppearance
в YES
в plist, а затем в каждом представлении контроллера есть этот метод
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
Это боль в заднице, и это определенно не самое лучшее решение. В настоящее время это работает на всех моих контроллерах представления, кроме одного, который я все еще ищу альтернативное решение для этого.
РЕДАКТИРОВАТЬ
Нашел лучшее решение. Держать UIViewControllerBasedStatusBarAppearance
в NO
а также Status bar style
в UIStatusBarStyleLightContent
в plist, затем добавьте правильное изображение запуска, выбрав + -> New Launch Image
из активов изображения. Это предотвратит масштабирование приложения iPhone 6/6+ до размера экрана и отображение светящейся строки состояния. Правильные размеры экрана:
iPhone 4/4S: 640x960 px
iPhone 5/5S: 640x1136 px
iPhone 6: 750x1334 px (edited)
iPhone 6+: 1242x2208 px
Я не могу взять кредит на себя, просто свидетельствую, что это сработало. Здесь я нашел решение /questions/28405123/stroka-sostoyaniya-s-chernyim-tekstom-tolko-na-iphone-6-ios-8/28405132#28405132 и http://beageek.biz/how-to-create-launch-images-app-xcode-ios/
У меня была та же проблема, и я решил
- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
я ленивый, поэтому я создал контроллер, чтобы добавить его, а все остальные наследуют его
Я также упомянул об этом в ответ на это сообщение, но единственное, что я нашел, - это преобразование вашего приложения для использования ресурсов iPhone 6 и 6+.
После того, как вы добавите в свой менеджер активов активы загрузки правильного размера, ваше приложение будет соответствовать настройкам стиля строки состояния.
For iPhone 6:
750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape
For iPhone 6 Plus:
1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape
Вы также должны дважды проверить, что вы устанавливаете свой стиль строки состояния в UIStatusBarStyleLightContent. Это можно сделать двумя способами:
- В info.plist вашего приложения установите UIStatusBarStyle = UIStatusBarStyleLightContent
- Переопределите метод предпочитаемый метод StatusBarStyle: во всех применимых UIViewController в вашем проекте. (Для этого параметра убедитесь, что в info.plist вашего приложения есть UIViewControllerBasedStatusBarAppearance = YES)
Ответ pfryerda верен, и образ проблемы является решением проблемы. Я исправил свою проблему, даже не зная. Я использовал новый Launch Screen File
раздел вкладки "Общая информация" и установите мой стартовый экран в качестве отдельной раскадровки. В раскадровке я создал вид, размер которого был изменен до полного экрана, и я знаю, что эта проблема больше не возникает, поскольку экран запуска всегда имеет правильный размер.
Просто чтобы напомнить, как создать раскадровку экрана запуска:
Создайте пустой файл раскадровки с именем LaunchScreen.storyboard.
Перейдите к настройкам цели и на вкладке "Общие" выберите раскадровку в качестве файла экрана запуска. Xcode добавит соответствующий ключ UILaunchStoryboardName в Info.plist вашего приложения. Когда этот ключ присутствует, Xcode будет определять его приоритет над любыми установленными вами изображениями запуска.
Добавьте сцену контроллера представления в раскадровку. Добавьте несколько подпредставлений на сцену и разместите их с ограничениями. Когда вы запускаете приложение на устройстве, ОС должна использовать сцену в качестве экрана запуска.
Вы можете узнать больше здесь: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/