iPhone X의 안전 영역 아래쪽 가장자리에 흰색 상자를 표시하면 어떻게됩니까 (홈 인디케이터가 흰색 상자에 놓이는 지)? 이 방법을 프로그래밍 방식으로 사용하여 스토리 보드를 망치고 싶지는 않습니다.안전 영역 아래에 흰색 상자 표시
답변
이 (있는 viewDidLoad에서) 시도 :
UIView *testView = [UIView new];
testView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:testView];
testView.translatesAutoresizingMaskIntoConstraints = NO;
[testView.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor].active = YES;
[testView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
[testView.leftAnchor constraintEqualToAnchor:self.view.leftAnchor].active = YES;
[testView.rightAnchor constraintEqualToAnchor:self.view.rightAnchor].active = YES;
편집 만이 아이폰 OS 11 + (어떤 의미)에 대해 수행하지만 이전 버전은 다음과 같은 일을 지원합니다
(Xcode 9 이상이라고 가정) :
if (@available(iOS 11.0, *)) {
UIView *testView = [UIView new];
testView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:testView];
testView.translatesAutoresizingMaskIntoConstraints = NO;
[testView.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor].active = YES;
[testView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
[testView.leftAnchor constraintEqualToAnchor:self.view.leftAnchor].active = YES;
[testView.rightAnchor constraintEqualToAnchor:self.view.rightAnchor].active = YES;
}
작동! 마지막 질문 : 'safeAreaLayoutGuide'는 iOS 11.0 이상에서만 경고로 사용할 수 있습니다. 윌은 iOS 9/10의 기기에 문제가 있거나 코드를 무시할 것입니다 (iPhone X는 11 이상이므로 괜찮습니다) – Branch
실제로 safeAreaLayoutGuide는 iOS 11에서만 사용할 수 있습니다. 앱이 iOS 9에서 작동하도록하려면 & 10 그러면 iOS 버전을 감지하고 다른 것을해야 할 것입니다. 실제로 이것은 iPhone X 용이므로 iOS 11이 아니라면이 항목을 건너 뛸 수 있습니다.이 작업을 수행하는 방법을 보여줄 답변을 편집합니다. –
감사합니다. * 11.0 이후 *는 11.0 이후 모든 버전을 의미한다고 가정합니다. – Branch
안전 영역 배경색을 흰색으로 지정 하시겠습니까? –