wafflestudio / seminar-2021

2021 Rookies 세미나
47 stars 110 forks source link

addSubview를 통해 추가한 view가 제대로 정렬되지 않는 문제 #533

Closed shp7724 closed 2 years ago

shp7724 commented 3 years ago

문제 내용

addSubview를 통해 추가한 view가 우측으로 미세하게 쏠리는 현상이 있는 것 같습니다.

image

세미나장님께서 올려주신 예시에도 고양이와 고양이 사진이 완벽하게 가운데에 정렬되어 있지 않은 모습을 확인할 수 있습니다.

해당 고양이 view에는 오토 레이아웃이 적용되어 있는데도 이런 현상이 나타나는 이유가 무엇인가요? 그리고 해결 방법을 알고 싶습니다.

감사합니다!

keumartist commented 3 years ago

제가 올려준 예시는 확인해보니 Cat View는 아이폰 11 기준(너비: 414)으로 뷰를 만들었고, Main View는 아이폰 12 기준(너비: 390)으로 뷰를 만들어서 차이가 있었습니다. 두 View의 너비를 맞춰 주면 해결됩니다!

참고로, UI 디버깅하는 방법 하나 알려 드릴게요. Xcode를 통해 앱을 시뮬레이터 또는 아이폰으로 실행(Run)하고 있을 때, Debug view hierarchy 버튼을 누르면 hierarchy와 더불어 각 뷰의 property를 확인할 수 있습니다.

Screen Shot 2021-10-06 at 3 32 00 PM

(위의 그림) "Debug View Hierarchy" 라고 쓰여 있는 부분에 있는 버튼(공유 아이콘 왼쪽에 있는 녀석입니다) 누르면

Screen Shot 2021-10-06 at 3 33 54 PM

요렇게 디버깅 화면이 뜹니다.

shp7724 commented 3 years ago

아 그렇군요. 확인했습니다. 그런데 혹시 SubView의 크기를 하드코딩하지 않고도 다이나믹하게 Parent View의 양쪽 끝과 맞출 수 있는 방법이 있을까요? 오토레이아웃 적용하듯이요.

keumartist commented 3 years ago

subview에도 오토 레이아웃을 적용하면 됩니다! 이 경우 코드로 subview와 parentview를 기준으로 오토 레이아웃을 작성하면 될 것 같습니다. 관련 자료로는 이런 것이 있네요! https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/LayoutUsingStackViews.html#//apple_ref/doc/uid/TP40010853-CH11-SW1