카테고리 없음

[iOS] iPhone Duo Layout 검토하기

냄수 2026. 9. 30. 21:46
반응형

아이폰 폴더블폰인 Duo가 나오면서 

많은부분들을 고려하고 봐야하지만 새로나온 타입과 변경점을 중심으로 확인해보려합니다

 

레이아웃은 총 6가지의 경우가있어서 잘 대응해야합니다

 

힌지라는 개념이 새로생겼습니다.

onHingeChange 로 힌지상태값을받아서 

status - 힌지가 접혔는지 펴졌는지 부분 접혓는지

angle - 각도 

를 알 수있습니다.

 

Toolbar

toolbarVerticalBehavior

처음 비교해볼건 탭바나 툴바의 위치입니다

 

toolbarVerticalEdge (툴바위치)

화면 회전 0도일때

close(닫힌상태) - trailing

partiallyOpen(구부린상태) - trailing

fullyOpen(편상태) -  trailing

 

 

 

 

 

 

 

 

 

toolbarVerticalEdge (툴바위치)

화면 회전 90도일때

close(닫힌상태) - trailing

partiallyOpen(구부린상태) - trailing

fullyOpen(편상태) -  nil(bottom)

 

 

 

 

toolbarVerticalEdge (툴바위치)

화면 회전 180도일때 (시뮬레이터상에서는 UI가 돌아가지않음)

close(닫힌상태) - trailing

partiallyOpen(구부린상태) - trailing

fullyOpen(편상태) -  trailing

 

 

 

 

 

 

 

 

 

 

toolbarVerticalEdge (툴바위치)

화면 회전 270도일때

close(닫힌상태) - leading

partiallyOpen(구부린상태) - nil(bottom)

fullyOpen(편상태) -  nil(bottom)

 

 

 

 

 

toolbarVerticalBehavior

disable 설정시 탭바가 오른쪽에안뜨고 보통 아이폰과같이 하단에 존재

오른쪽: disable설정

 

toolbarVerticalCompressionBehavior

툴바 압축 우선순위 지정

 

prefersToolbarItems - 툴바 우선 보여주고 탭바를 압축

 

prefersTabBar - 탭바 우선 보여주고 툴바 압축 

 

 

Toolbar 위치 관련

axisBehavior - 세로 바에 들어갈 수 있는지

- .verticalPreferred: 가로,세로 모두지원, 세로 우선

- .horizontalOnly: 가로바에만 지원

placement - 어디자리에 둘지

ToolbarOverflowMenu - 항상 오버플로 메뉴에 들어감. 공간이 모자라서 밀려나는게아니라 항상 메뉴안에 넣는다 선언

 

 

 

ReservedRegions

다음으로는 화면안쪽에 새로생긴 division(접힘선)과 occlusion(UDC 카메라)의 위치 비교입니다.

ReservedRegions 타입에 해당합니다

점선: inactive, 실선: active

division은 fullyOpen상태에서도 조회는 가능합니다

조회시 isActive차이가 있습니다. (조회시 includeInactive 옵션을 넣어줘야합니다)

 

occlusion에서는

외부 디스플레이는 카메라 영역이 항상 active, 내부는 사용중일때만 active 상태입니다.

 

 

ArrangementView 

접혔을때 기준을 지정할 수 있습니다. 

- .arrangementViewStyle로 split, overlay를 통해 어느 축으로 나눌건지 제한가능

- .splitArrangementLayoutRatio로 split 된 뷰비율 조절가능

- .overlayArrangementEdge로 overlay된 뷰 기준점 조절가능(HorizontalEdge, VerticalEdge)

 

 

backgroundExtensionEffect

Duo는 세로 바, 카메라 때문에 safe area가 한쪽으로 쏠려 있어서 레이아웃은 안쪽에 두고 배경만 바 밑으로 채우는 용도로 사용

해당뷰만 뚫고나옴

 

vs safeArea

.ignoresSafeArea는 실제로 커지고 뷰의 원본내용이 그려짐

.backgroundExtensionEffect는 가장자리를 반사한 복제복이 그려짐 + 블러

오른쪽 끝에 사람 얼굴이 있는 사진을 쓴다고 하면

 

- ignoresSafeArea: 얼굴이 카메라·세로 바 밑으로 들어가서 가려집니다.

- backgroundExtensionEffect: 얼굴은 safe area 안에 온전히 보이고 바 밑에는 번진 복제본만 깔립니다.

 

ignoresSafeArea는 레이아웃을 바꾸고, backgroundExtensionEffect는 레이아웃은 그대로 두고 보이는 것만 채웁니다.

그래서 콘텐츠가 있는 뷰(사진, 텍스트)에는 extension을 쓰고 순수 배경색에는 ignoresSafeArea로 충분합니다.

 

 

PresentationPlacement

sheet 사용시 위치지정가능

 

 

 

 

https://developer.apple.com/design/human-interface-guidelines/designing-for-iphone-duo#Dynamic-layouts

반응형