왕논의 연구실

[Swift] Size Class 본문

iOS/Swift

[Swift] Size Class

ywangnon 2023. 1. 16. 01:00

사이즈 클래스란?

처음 아이폰이 나왔을 때는 크기가 하나였습니다. 그래서 화면 디자인 구성하기가 간단했습니다. 그러나 현재는 기종별로 iPhone 크기도 다르고, iPad는 iPhone과 완전히 다른 크기를 가지고 있습니다. 또한, Split View, Slide Over 등 iPad 내에서 화면의 크기를 다르게 만드는 기능도 있습니다. 그래서 애플은 화면의 크기를 크게 두가지 범주에서 나누어 구분하도록 하였습니다.

 

Compact : 제약이 적용된 공간. 제약이 적용되어서 화면을 다중으로 띄우거나 나눌 수 없습니다.

Regular : 제약이 없는 공간. 화면을 다중으로 띄우거나 나눌 수 있습니다.

 

아이패드 연락처 / 아이폰 연락처

그래서 기기마다 너비와 높이에 compact, regular 클래스가 있습니다. 위 사진에서 아이패드는 regular-width를 가지고 있기에 가로로 여러 화면을 넣을 수 있어서 네비게이션이 master-detail 식으로 되어 있습니다. 그런데 아이폰은 compact-width를 가지고 있기에 하나의 화면만 나오고, 터치시 detail로 들어가는 식으로 되어 있습니다.

 

주의

보통 프로그램을 만들 때, 아이폰과 아이패드를 구분해서 만드는 경우가 많습니다. 그런데 이 compact, regular로 구분하려 할 경우 문제가 생길 수 있습니다. iphone은 portrait일때 width의 경우 다 compact이지만, 크기가 큰 아이폰은 landscape시 width가 regular인 경우가 있습니다.

 

 

그래서 사이즈클래스로 기기를 구분할 경우엔 regular-width, regular-height처럼 둘 다 regular인 경우로 설정해주어야합니다.

'iOS > Swift' 카테고리의 다른 글

[Swift] 자식 뷰컨트롤러에서 dismiss를 적용하면?  (0) 2023.05.31
[Swift] 기기에 따른 화면 오토레이아웃 구성  (0) 2023.01.15
[Swift] CoreBluetooth  (0) 2022.11.30
[swift] lazy  (0) 2022.06.30
[Swift] UIToolbar  (0) 2022.06.29