2015-07-23 14 views
7

Я пытаюсь охватить строку состояния с моей точки зрения и делать, что я calculcate рамки для моей точки зрения, делая что-то вроде этого (и после вращения):iOS9 покрытие Строка состояния с пользовательскими UIWindow - неправильное положение

UIScreen *screen = [UIScreen mainScreen]; 
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame; 

Для iOS8 + (потому что с ios8 UIScreen является orientantion-зависимой):

CGRect frame = [screen.coordinateSpace convertRect:statusBarFrame toCoordinateSpace:screen.fixedCoordinateSpace]; 
[self setFrame:frame]; 

Для iOS7:

[self setFrame:statusBarFrame]; 

Он работает отлично для iOS8 и ниже, но при создании моего приложения с Xcode 7 beta 4 и iOS 9 SDK что-то не так, когда вы запускаете приложение в ландшафтном или upsidedown (он отлично работает, если приложение запускается в портрете) ...

т.е. когда я запускаю приложение, в то время как Upsidedown пользовательский uiwindow, который должен охватывать строку состояния, всегда будет в нижней части экрана, любые идеи, что может быть неправильным?

+0

Выяснил это? – rushelmet

+0

rushelmet, еще нет :( – Artrmz

+0

Посмотрите последний ответ: http://stackoverflow.com/questions/33244580/view-above-the-status-bar/33244933#33244933 – rushelmet

ответ

0

Дополнительную информацию можно получить у , которая будет просто скрывать панель статуса:. Если вы все еще хотите «Строка состояния» для целей анимации или какой-либо другой причине, типичное решение в этом сценарии, чтобы имитировать его с помощью вызова

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates на UIScreen

и использовать возвращаемый вид в качестве фона для любой представление/окно, которое вы представляете. Начиная с iOS 9, нет общедоступного метода, который позволит вам определить конкретное поведение, которое вы указали.