iOS9 закрывает строку состояния с пользовательским окном - неправильная позиция
Я пытаюсь закрыть строку состояния своим собственным видом и для этого вычисляю фрейм для своего представления, выполняя что-то подобное (также после поворота):
UIScreen *screen = [UIScreen mainScreen];
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
Для iOS8+ (потому что с ios8 UIScreen
зависит от ориентации):
CGRect frame = [screen.coordinateSpace convertRect:statusBarFrame toCoordinateSpace:screen.fixedCoordinateSpace];
[self setFrame:frame];
Для iOS7:
[self setFrame:statusBarFrame];
Он отлично работает для iOS8 и ниже, но при создании моего приложения с помощью Xcode 7 beta 4 и iOS 9 SDK что-то не так при запуске приложения в альбомной или вертикальной ориентации (работает нормально, если приложение запускается в портретной ориентации) ...
то есть. когда я запускаю приложение во время переворота, пользовательское окно, которое должно покрывать строку состояния, всегда будет в нижней части экрана, есть идеи, что может быть не так?
1 ответ
Без дополнительной информации лучшим решением будет просто скрыть строку состояния. Если вам все еще нужна "строка состояния" для анимации или по какой-либо другой причине, типичное решение в этом сценарии - смоделировать ее, вызвав
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
на UIScreen
и используйте возвращенный вид в качестве фона для любого представления / окна, которое вы представляете. Начиная с iOS 9, нет открытого метода, который позволил бы вам получить указанное поведение.