Apple/UIKit

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

어멘드 2022. 3. 11. 01:29
반응형

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

 

 전에 적용했던 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들은 배열로 묶어 변수로 선언해둔다.

 

 

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

반응형