본문 바로가기
IOS 어플 개발/아이폰 어플 제작 도전기!

아이폰 어플 만들기 독학 4일차: Xcode 11 - View Constraints 0 설정 불가능 에러 해결법

by 반한울 2020. 3. 25.

Xcode 11을 쓰다 보니 오류를 발견했다. ImageView 같은 Objects를 아이폰 화면 전체(View)에 꽉 채우고 싶은데, Constrain 0 설정을 해도 Safe View로 돌아간다는 것.

왼쪽 사진 1, 오른쪽 사진 2

 왼쪽 사진 1은 Constrain to margins를 체크하지 않고, Safe area가 아닌 View에 대하여 마진을 '0'으로 설정했지만 Constraints가 다시 '20, 20, 20, 20'인 Safe area로 돌아간 모습이다. 아이폰 화면을 꽉 채우려면 View에 대하여 Constraints의 마진들이 '0'이어야 하는데 Xcode 11에서는 0을 설정하면 Standard라는 결과값으로 돌아가는 오류가 나고 있다. 오른쪽 사진 2는 그 오류를 해결한 모습. 

 본론으로 오류를 해결하는 방법. 약간 대충(?) 해결하는 방식이 있고, 확실히 해결하는 방식이 있다. 무슨 말인지는 읽어보면 알 듯...

왼쪽 사진 3, 오른쪽 사진 4

 왼쪽 사진 3처럼 Constrain to margins의 체크를 풀고, 사진 4와 같이 View에 대한 Constraints로 설정을 한다. 여기까지는 기존의 방법과 동일. 하지만 Constraints 값을 설정할때 아래 사진 5와 같이 0.1(또는 더 작은 0.01)의 숫자를 설정하면 된다. 여기까지가 대충(?) 해결하는 방법.

사진 5

 여기서 조금이라도 완벽하게 일을 끝내고 싶은 사람들은 0.1을 0으로 바꾸고 싶을거다(본인은 그랬다). 

왼쪽 사진 6, 오른쪽 사진 7

 왼쪽 사진 6처럼 Main.storyboard에서 화면에 꽉 채우고 싶은 해당 오브젝트를 선택한다. 그러면 오른쪽 상단 메뉴에서 자 모양의 'Set Value'가 나오는데, 여기서 아래로 내리다 보면 Constraints 값을 수정할 수 있는 목록이 나온다. 여기서 Edit 버튼을 누르고 아래 사진 8처럼 Constant 값을 0으로 바꾸면 끝. 완벽히 했다면 Superview라는 글자와 디스플레이 꽉 찬 오브젝트를 볼 수 있을 것이다.

사진 8

 자세한 문제 해결 방법은 당연히 스오플에서 찾았다. 원래 저렇게 자세한 답변이 아니었는데 업데이트가 많이 됐다. 아래는 스택오버플로우(StackOverFlow) 답변 링크.

https://stackoverflow.com/questions/59425096/xcode-11-add-new-constraints-set-zero-use-set-value-instead-of-default-standa

댓글