내 오래된 iOS 앱은 모든 iPhone 버전에서 잘 작동합니다 (iPhone X 모델 제외). iPhone X 시뮬레이터를 실행하고 iPhone X 화면의 하단에서 일부 화면이 겹쳐 보이는 것을 봅니다. 내 응용 프로그램은 모든 uiviewcontrollers가 프로그래밍 방식으로 만들었으며 스토리 보드로 디자인되지 않았습니다. 그래서 모든 뷰 컨트롤러에서 프레임 크기를 찾기 위해 (self.view.frame) 사용했습니다. iPhoneX에는 스토리 보드에서 설계 할 수있는 안전 가드 영역이 있습니다. 하지만 런타임에 안전 가드 영역을 어떻게 계산합니까? Google 검색 중에는 iOS11의 지원 인 안전 가드 영역을 찾을 수있는 샘플이 있습니다.하지만 ios9에서 내 앱을 실행하고 싶습니다. 내 프로젝트에는 많은 uiviewcontroller가 있습니다. 그래서 누구나이 작업을 수행하는 가장 쉬운 방법을 말할 수 있습니까?iPhone X를 지원하는 기존 앱은 무엇입니까?
0
A
답변
0
유사한 목적 C 코드를 추가하는 것입니다 (오래된 사전 (11) 배포 목표로) 이전 (이전 스토리 보드 매뉴얼 레이아웃) 아이폰 X 레이아웃 문제에 애플 리케이션을위한 런타임 수정을 추가하는 한 가지 가능한 방법 :
를CGRect r0 = self.view.frame;
CGRect r1 = r0;
if (@available(iOS 11.0, *)) {
r1 = self.view.safeAreaLayoutGuide.layoutFrame;
}
if (r1.size.height < (r0.size.height - 20.0)) {
// fix top and bottom view overlap outside safe area here
}
각 UIViewController의 viewWillLayoutSubviews 메서드 내에 있습니다.
@available 체크를 사용하면 iOS 11 이전의 iOS 버전에서이 코드를 안전하게 사용할 수 있습니다.
iPhone 8은 어떻습니까? – SPlatten
1125px × 2436px의 스플래시 화면 이미지를 추가 했습니까? – Abhishek
스플래시 화면 이미지가 추가되었습니다. 하지만 여전히 문제가 있습니다. – vinoth87