[IOS] UIModalPresentationStyle의 pageSheet과 formSheet의 차이

2022. 2. 6. 20:30·IOS

두 프레젠테이션 방식이 실제 화면에서 어떻게 다른지 비교하기 위해 간략하게 설명하려고 한다. 


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.

뷰 컨트롤러의 컨텐츠가 스크린의 중앙에 표시되는 프레젠테이션 스타일이라고 돼있다. 

 

실제로 시뮬레이터로 두 가지 스타일을 적용시켜서 눈으로 확인해보면 두 스타일 모두 아래처럼 동일하게 동작하는 걸 볼 수 있다.

프레젠테이션
pageSheet과 formSheet 스타일

적용시켰을때 모습은 똑같지만 두 가지 스타일 모두 개발자 문서에 나와있는 설명대로 동작하는 것 처럼 보인다. 그럼 이번엔 아이폰이 아니라 아이패드에서 동작하는 모습을 살펴보자.

formSheet 스타일 (왼쪽), pageSheet 스타일 (오른쪽)

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
'IOS' 카테고리의 다른 글
  • [IOS] 스크롤 중 Timer가 동작하지 않았던 이슈와 해결방법
  • [IOS] Notification을 이용하여 여러 클래스에서 데이터 받기
  • UITextField를 이용해 비밀번호 입력 칸 만들기
  • Timer 객체와 RunLoop에 대하여
무슈후슈
무슈후슈
코딩은 창작이다.
  • 무슈후슈
    감성코드
    무슈후슈
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • 알고리즘 (30)
      • IOS (25)
      • Swift (4)
      • TIL (41)
      • CS (15)
      • 메모 (2)
      • 시플 (1)
      • RxSwift (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이분 탐색
    파이썬
    ios
    python
    git
    http
    비동기
    코딩테스트
    프로그래머스
    풀이
    그리디
    알고리즘
    SWIFT
    MVVM
    다이나믹 프로그래밍
    백준
    Realm
    github
    그래프 탐색
    codable
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
무슈후슈
[IOS] UIModalPresentationStyle의 pageSheet과 formSheet의 차이
상단으로

티스토리툴바