Let us go layoutmargins

알아두면 유용한 iOS의 LayoutMargins를 소개합니다!

LayoutMargins를 소개하는 강연으로 지난 let us: Go! 2017 Summer에서 발표된 내용입니다.


최근 LayoutMargins에 대해 공부하면서 iOS에서 활용하면 좋은 LayoutMargins에 대해 소개하는 시간을 갖게 됐습니다.

LayoutMargins란?

Apple의 Developer 사이트에서는 위 이미지처럼 설명하고 있는 LayoutMargins란 뷰에 내용을 배치할 때 사용할 기본 간격입니다. 처음에는 LayoutMargins을 이해하지 못하고 항상 끈 상태로 작업했는데, 인터페이스 빌더에서 UIEdgeInset을 사용하고 싶어서 찾아보다가 LayoutMargins에 대해 알게 됐습니다.

이런 개발 뉴스를 더 만나보세요

처음 뷰를 만들 때 LayoutMargins를 넣은 상태로 오토 레이아웃을 적용하면 값을 여러 가지로 넣어볼 수 있습니다.

Preserve super view LayoutMargins

또한 Preserve super view LayoutMargins라는 것도 있는데 내용을 배치할 때 슈퍼 뷰의 여백도 고려합니다. 뷰의 사이즈를 정하고 레이아웃 마진을 끈 상태에서 20을 줬습니다. 그 안의 노란색 뷰는 레이아웃 마진을 주고 0을 주면 이런 화면이 나옵니다. 이때 가장 부모가 되는 뷰에게 레이아웃 마진을 28을 적용하면 아무 일도 일어나지 않지만 50을 주면 밀려나게 됩니다. 슈퍼 뷰에 딱히 마진을 주지 않아도 하위 뷰에게 영향을 주는 이유는 Preserve super view LayoutMargins를 체크했기 때문입니다. (Xcode에서의 실제 시연이 있으니 상단 Play 버튼을 눌러서 영상의 6:10부터 시청해 주세요.)

LayoutMargins 이용하기

label inset을 레이아웃 마진과 함께 사용하기

제 경우 라벨에 여백을 주고 싶은 경우 인스펙터로 값을 여러 가지로 넣어야 하지만, 이미 가지고 있는 인스펙터블에서 해결하고 싶어서 LayoutMargins를 고민하게 됐습니다. label inset을 레이아웃 마진과 섞어서 쓸 수 있도록 만들었습니다. (시연 영상 8:40 부분을 참고해 주세요)

스택 뷰에 사용하기

스택 뷰를 쓰는 경우 많은 사람들이 간격을 다르게 주고 싶어서 고민하게 됩니다. 저 역시 다른 간격을 적용하기 위해 LayoutMargins를 적용해 봤습니다. 지금은 뷰를 가진 상태에서 간격을 유지하고 싶을 때 사용하고 있는데 물론 오토 레이아웃을 사용할 수도 있지만, 좀 더 값을 편하게 바꿀 수 있고 코드상에서도 바로 적용할 수 있기 때문에 LayoutMargins로 좀 더 편하게 구현할 수 있습니다. 코드도 좀 더 간결해집니다. (시연 영상 9:55 부분을 참고해 주세요.)

정리

꼭 써야 하는 기능은 아니지만, 개발을 좀 더 편리하게 지원할 수 있는 기능이므로 필요에 따라 사용하시면 좋을 것 같습니다.


본 영상과 글은 let us: Go!의 비디오 스폰서인 Realm에서 제공합니다. 모바일 개발자가 더 나은 앱을 더 빠르게 만들도록 돕는 Realm 모바일 데이터베이스Realm 모바일 플랫폼을 통해 핵심 로직에 집중하고 개발 효율을 높여 보세요! 공식 문서에서 단 몇 분 만에 시작할 수 있습니다. 또한 Realm 홈페이지에서는 모바일 개발자를 위한 다양한 최신 기술 뉴스와 튜토리얼을 제공하고 있으니 즐겨찾기하고 자주 들러 주세요!

다음: Realm Swift를 사용하면 iOS 앱 모델 레이어를 효과적으로 작성할 수 있습니다.

General link arrow white

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.

김태완

4 design patterns for a RESTless mobile integration »

close