2014-09-09 3 views
8

UIWindow에 하위 뷰를 추가하는 간단한 모듈을 만들었습니다. 시뮬레이터 IOS 7 (5.1.1 엑스 코드)에서 나는 self.windows를 인쇄하고 난 얻을 : UIWindow 프레임이 가로 8에있는 ios 7과 다릅니다.

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

하지만 iOS8의에

(엑스 코드 6 베타 6) 내가 얻을 :

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

질문입니다 : 왜 프레임 속성에 차이가 있습니까?

+0

여기보세요, http://stackoverflow.com/questions/24150359/is-uiscreen-mainscreen-bounds-size-becoming-orientation-dependent-in-ios8 – Jageen

답변

9

아마 AppDelegate에 당신처럼 당신의 UIWindow를 초기화이 UIScreen의 경계 속성은 실제 화면의 경계의 구형 (즉 세로입니다) 반환하지만, iOS8의에서 시작하는 것은 경계 변경에 앞서 iOS8의에

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

장치가 회전 할 때 documentation.

이제 실제 화면의 경계 사각형을 가져 오려면 nativeBounds를 사용할 수 있습니다.

참고 : nativeBounds는 화면을 픽셀로 반환하지만 bounds는 화면을 점으로 반환합니다. 이 문제에 대한

0

내 솔루션 그냥 무시했다 : iOS8의에

CGAffineTransformMakeRotation 

지금은 모든 것이 나를 위해 작동! 고마워요 :)

+3

어떻게 할 수 있습니까? – whyoz

+0

가장 도움이되지 않는 답변입니다. 정교한 케어? – absessive

관련 문제