2014-09-09 14 views
8

Utworzono prosty moduł, w którym dodam podgląd do UIWindow. W symulatorze iOS 7 (Xcode 5.1.1) Mam wydrukowane self.windows i uzyskać:Ramka UIWindow w systemie ios 8 różni się od ios 7 w Krajobrazie

<UIWindow: 0x8db1670; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0x8db1a70>; layer = <UIWindowLayer: 0x8db17d0>> 

ale systemów iOS 8 (Xcode 6 beta 6) uzyskać:

<UIWindow: 0x794320d0; frame = (0 0; 1024 768); gestureRecognizers = <NSArray: 0x79437a80>; layer = <UIWindowLayer: 0x7943c400>> 

Pytanie brzmi: dlaczego istnieje różnica w własności ramki?

+0

mają wyglądać tutaj, http://stackoverflow.com/questions/24150359/is-uiscuis-mainscreen-bounds-size-becoming-orientation-dependent-in-ios8 – Jageen

Odpowiedz

9

Prawdopodobnie w AppDelegate ty inicjowania swój UIWindow tak

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

Przed systemów iOS 8 własność granicach UIScreen powrócił obwiedni prostokąt ekranu fizycznego (czyli portret), ale wychodząc z systemów iOS 8 ograniczającą zmian gdy urządzenie obraca się teraz, można teraz użyć nativeBounds, jeśli chcesz uzyskać prostokąt ograniczający fizycznego ekranu.

Uwaga: nativeBounds zwraca ekran w pikselach, ale granice zwracają go w punktach.

0

Moje rozwiązanie tego problemu po prostu zignorować:

CGAffineTransformMakeRotation 

na systemów iOS 8 i teraz wszystko działa na mnie! dzięki :)

+3

i jak możesz to zrobić? – whyoz

+0

Niezbyt pomocne odpowiedzi. Możesz rozwinąć temat? – absessive

Powiązane problemy