2017-12-31 46 views
0

iPhone X의 안전 영역 아래쪽 가장자리에 흰색 상자를 표시하면 어떻게됩니까 (홈 인디케이터가 흰색 상자에 놓이는 지)? 이 방법을 프로그래밍 방식으로 사용하여 스토리 보드를 망치고 싶지는 않습니다.안전 영역 아래에 흰색 상자 표시

+0

안전 영역 배경색을 흰색으로 지정 하시겠습니까? –

답변

1

이 (있는 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; 
} 
+0

작동! 마지막 질문 : 'safeAreaLayoutGuide'는 iOS 11.0 이상에서만 경고로 사용할 수 있습니다. 윌은 iOS 9/10의 기기에 문제가 있거나 코드를 무시할 것입니다 (iPhone X는 11 이상이므로 괜찮습니다) – Branch

+1

실제로 safeAreaLayoutGuide는 iOS 11에서만 사용할 수 있습니다. 앱이 iOS 9에서 작동하도록하려면 & 10 그러면 iOS 버전을 감지하고 다른 것을해야 할 것입니다. 실제로 이것은 iPhone X 용이므로 iOS 11이 아니라면이 항목을 건너 뛸 수 있습니다.이 작업을 수행하는 방법을 보여줄 답변을 편집합니다. –

+0

감사합니다. * 11.0 이후 *는 11.0 이후 모든 버전을 의미한다고 가정합니다. – Branch