두 프레젠테이션 방식이 실제 화면에서 어떻게 다른지 비교하기 위해 간략하게 설명하려고 한다.
UIModalPresentationStyle은 뷰 컨트롤러가 modal 방식으로 화면에 보여질 때 어떤 방식으로 보여줄 것인지 설정하는 열거형 객체이다. 자칫하면 UIModalTransitionStyle과 헷갈릴 수 있는데, UIModalTransitionStyle은 해당 뷰 컨트롤러로 화면이 전환될 때 전환 이펙트(수평 접기, 수직으로 올라오기 등)라고 생각하면 된다. MS PowerPoint의 슬라이드 간 전환 애니메이션과 동일하다고 보면 된다.
글에서 다룰 두 가지 외에도 다른 여러가지 스타일들이 있으나, 여기서는 pageSheet과 formSheet만 다뤄보도록 하겠다.
※ UIModalPresentationStyle은 뷰 컨트롤러가 present 될 때 보여지므로 뷰 컨트롤러에 프로퍼티에 값을 설정할 때 present되는(presented) 뷰 컨트롤러의 프로퍼티를 수정해야한다. (UIModalTransitionStyle도 마찬가지이다.)
- UIModalPresentationStyle.pageSheet
A presentation style that partially covers the underlying content.
개발자 문서에 나와있는 설명에 따르면, present되는(presented) 뷰 컨트롤러가 present하는(presenting) 뷰 컨트롤러의 일부를 덮는 프레젠테이션 스타일이라고 돼있다. presenting 뷰 컨트롤러는 present 메소드를 호출한 주체를 의미하고, presented 뷰 컨트롤러는 그 메소드에 의해 새로 보여지는 뷰 컨트롤러를 의미한다.
- UIModalPresentationStyle.formSheet
A presentation style that displays the content centered in the screen.
뷰 컨트롤러의 컨텐츠가 스크린의 중앙에 표시되는 프레젠테이션 스타일이라고 돼있다.
실제로 시뮬레이터로 두 가지 스타일을 적용시켜서 눈으로 확인해보면 두 스타일 모두 아래처럼 동일하게 동작하는 걸 볼 수 있다.
적용시켰을때 모습은 똑같지만 두 가지 스타일 모두 개발자 문서에 나와있는 설명대로 동작하는 것 처럼 보인다. 그럼 이번엔 아이폰이 아니라 아이패드에서 동작하는 모습을 살펴보자.
formSheet 스타일은 문서에 나와있는 설명대로 스크린의 정중앙에 뷰 컨트롤러를 보여주고 pageSheet는 비교적 넓게 뷰 컨트롤러를 보여준다는 것을 한눈에 알 수 있다.
'IOS' 카테고리의 다른 글
[IOS] 스크롤 중 Timer가 동작하지 않았던 이슈와 해결방법 (0) | 2022.03.11 |
---|---|
[IOS] Notification을 이용하여 여러 클래스에서 데이터 받기 (0) | 2022.02.14 |
UITextField를 이용해 비밀번호 입력 칸 만들기 (0) | 2022.02.06 |
Timer 객체와 RunLoop에 대하여 (0) | 2022.02.06 |
[IOS] UIImageView의 모서리를 둥글게 만드는 방법 (0) | 2022.01.18 |