본문 바로가기
Apple/UIKit

[iOS] 화면 방향에 따라 다른 오토레이아웃 적용하기

by 어멘드 2022. 3. 11.
반응형

 아래 사진처럼 기기 방향이 세로일 때와 가로일 때의 레이아웃을 다르게 잡고 싶었다.

 

 전에 적용했던 constraint들을 해제하고 새로운 constraint를 먹이면 되는데, 코드를 깔끔하게 처리할 수 있는 방법을 발견해서 정리해보고자 한다. (이어질 내용은 아래 포스팅 내용을 참고한 것임!)

 

Orientation Responsive UI in iOS

Have you ever encountered a situation where the landscape UI does not quite match the portrait UI — meaning the constraints that were used…

medium.com

 

 

 먼저 기기 회전이 이루어지면, ViewController의 viewWillTransition(to: with:)가 호출된다. 이 메소드를 오버라이드해서 기기 방향에 따라 constraint를 변경해주면 된다.

 

 applyConstraints() 메소드에서는,

1. 반대 방향일 때의 constraint들을 deactivate
2. 현재 방향에 적용해야하는 constraint들을 activate 해준다.

 

 

 각 방향일 때 적용해야하는 constraint들은 배열로 묶어 변수로 선언해둔다.

 

 

** 틀린 내용이 있거나, 더 좋은 방법이 있다면 댓글로 알려주세요:)

반응형

댓글