2014-10-22 9 views
0

갑자기 나타난 별난 문제가 있습니다. 문제는 아이폰 6에서 아이폰 6 플러스로 디바이스를 바꿀 때 내 애플이 내 의견을 조정하는 것 같다. 따라서 특정 글꼴 크기의 제목이있는 경우 iPhone 6 Plus 화면에서 동일한 제목을 사용하여 동일한 제목을 사용하면 크기가 같고 크기가 더 큰 장치에서 작게 나타납니다. 이 일이 어떻게 일어 났으며이를 고치는 방법을 아는 사람이 있습니까? UIScreen.mainScreen은 모든 장치에서 같은 크기입니다.

나는 실행에 의해 발견 : 자신의 모든 시뮬레이터 장치에서 같은 출력을 생성

NSLog(@"%f", [UIScreen mainScreen].bounds.size.width); 
NSLog(@"%f", [UIScreen mainScreen].bounds.size.height); 

그건 :

320 
568 

나는 그것이 더 큰 장치에 다른 뭔가를 기대합니다. 이것과 관련이 있습니까?

답변

1

iPhone 6 및 6 Plus 장치 용 시작 이미지를 추가 했습니까? 그렇지 않으면이 해상도로 확장되어 실행됩니다. [[UIScreen mainScreen] bounds] 호출은 4 인치 장치에서 실행중인 것처럼 경계를 반환합니다.

0

1136 높이의 새로운 기본 PNG 사진을 추가하기 만하면됩니다.

[UIScreen mainScreen] 경계] 크기는

4 인치 스크린의 새로운 키를 반환한다.

0

이것은 버그가 아닙니다. 당신은 더 많은 정보를 원하시면 WWDC 2014 세션 (214)을 검토 할 수있다 : "View Controller Advancements in iOS 8은 "프리젠 테이션에서

인용구 :

  • UIScreen 지금 지향 인터페이스 :
  • [UIScreen 경계] 이제 인터페이스를 지향
  • [UIScreen applicationFrame] now interface-oriented
  • 상태 표시 줄 프레임 알림은 인터페이스 지향적입니다.
  • 키보드 프레임 알림은 인터페이스 지향입니다.
0

다른 값을 얻으려면 계속 작업 할 수 있습니다. 다음은 코드입니다.

+ (CGRect)screenBoundsFixedToPortraitOrientation { 
     UIScreen *screen = [UIScreen mainScreen]; 

     if ([screen respondsToSelector:@selector(fixedCoordinateSpace)]) { 
         return [screen.coordinateSpace convertRect:screen.bounds toCoordinateSpace:screen.fixedCoordinateSpace]; 
     } 
     return screen.bounds; 
    }