2017-11-06 3 views
0

스토리 보드를 사용하지 않는 구식 앱이 있습니다. 모든 것이 프로그래밍 방식으로 추가 및 구성됩니다. iPhone X의 화면 아래쪽에 앉아 UIButton 구속 조건을 조정했습니다. 버튼이 더 이상 터치 이벤트에 반응하지 않고 내 배경 색상을 노란색으로 설정하면 버튼이보기 범위 밖에 있다는 것을 알았습니다. 그것은에 속한다.
화면을 채우기 위해보기를 확장하기 위해 여러 가지 시도했지만 아무 것도 작동하지 않는 것 같습니다. 보기 높이를 설정하고 콘텐츠 모드를 Aspect Fill 및 Scale로 설정하여 운이 없도록 채 웁니다.iPhone X 용으로 UIView 높이가 확장되지 않습니다

[self.view setBackgroundColor:[UIColor yellowColor]]; 
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 

보기의 프레임을 주 화면 경계로 설정하려고했습니다. 그것은 작동하지 않았다.

CGRect frame = [[UIScreen mainScreen] bounds]; 
self.view.frame = frame; 

기본보기의 높이 제한을 설정하려고했지만 작동하지 않았습니다. 내가 제대로했는지 모르겠다.

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view 
                   attribute:NSLayoutAttributeHeight 
                   relatedBy:NSLayoutRelationEqual 
                   toItem:nil 
                   attribute:NSLayoutAttributeNotAnAttribute 
                  multiplier:1 
                   constant:812]]; 

누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까?

UIView not full screen

+0

나는 안전 영역과 관련이 있다고 생각합니다. 스토리 보드로 앱을 다시 실행하는 것이 좋습니다. – GeneCode

+1

안전 영역과 관련하여 제약 조건을 설정해 보았습니까? –

+1

보기가 프레임을 얻지 못하는 것 같습니다. viewDidAppear에서보기 프레임을 설정하고 didLayoutSubviews에서 제한 조건을 변경하십시오. – Sunny

답변

1

이 검사에게

  1. 를 수행의로 자동으로 전체 화면을해야하는 것은 rootViewController의 프레임 세트입니다 [[UIScreen mainScreen] bounds]에서 didFinishLaunchingWithOptionsAppDelegate? 이 같은 것

    self.window.rootViewController.view.frame = [[UIScreen mainScreen] bounds];

  2. UIWindow의 프레임이 mainScreen 경계로 설정되어 있는지 확인하십시오.

    self.window.frame = [[UIScreen mainScreen] bounds]

  3. 확인 모든 자동 레이아웃 제약은 시작 버튼의 ViewController의 기본보기의 하위 뷰의 경우 브레이크 포인트

  4. 확인 제약 조건 오류를 가능하게하여 파손 된 경우.
+0

설정 self.window.frame = [[UIScreen mainScreen] bounds]; 문제를 고쳤다. – ijason03

1

toItem:nil 당신이 NSLayoutAttributeNotAnAttribute을 변경해야이 viewConstraint812.0

이 뷰의 높이를 설정합니다 .... 당신이 ... 예를 들어이 superview입니다을 제한 할 전망해야한다 self.view.superview이든 view-NSLayoutAttributeHeighttoItem에 당신은 ... 그것을 결합하여 변경할 8120.0

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view 
                  attribute:NSLayoutAttributeHeight 
                  relatedBy:NSLayoutRelationEqual 
                  toItem:self.view.superview 
                  attribute:NSLayoutAttributeHeight 
                 multiplier:1.0 
                  constant:0.0]]; 

내가 묻습니다 ... self.viewviewControllersview? 당신이 어떠한 방식으로 frame을 설정할 필요가 없습니다 ... viewController가 포함 된 경우를 제외하고는 bounds

+0

예 self.view는보기 컨트롤러보기입니다. 전에 프레임을 설정할 필요가 없었습니다. 이것은 iPhone X 시뮬레이터에서 테스트를 시작할 때만 시작되었습니다. 나중에 오늘 여러분의 제안을 시도 할 것입니다 – ijason03

+0

vc.view가 전체 화면을 표시하지 못하게하는 또 다른 문제가 있다고 생각합니다 – Magoo

+0

제한 제안을 시도했지만 작동하지 않았습니다. 이상하게도 self.view.superview.frame을 확인하면 x = 0, y = 0, width = 0, height = 0으로 설정됩니다. self.view의 프레임은 x = 0, y = 0, width = 375, height = 812로 설정되어 있지만 위의 이미지처럼 여전히 – ijason03

관련 문제