티스토리 뷰

iOS/Simple Knowledge

UIModalPresentationStyle

Giraff 2017. 12. 27. 00:52

View Controller를 Presenting 할 때 사용 할 수 있는 Modal presentation style을 알아보자.


1. fullScreen

 - presented view가 screen을 덮는다.


 - presenting view controller에 속한 view들은 presentation 완료 후 제거 된다.


2. pageSheet

- iPad와 같은 Regular-width, Regular-Height 디바이스에서, presented view의 width는 세로 방향에서의 스크린의 width로, height는 스크린의 height로 설정 된다.


- 덮이지 않는 영역은 사용자가 상호작용하지 못하도록 흐리게 표시 된다. 


- 세로 방향의 경우 이 옵션은 기본적으로 fullScreen과 동일하다.


- Horizontally compact 환경에서는 fullScreen과 동일하게 적용된다.


3. formSheet

 - iPad와 같은 Regular-width, Regular-Height 디바이스에서, 

뷰 컨트롤러는 콘텐트 영역이 스크린 사이즈보다 작고 흐리게 표시되는 뷰가 내용 아래에 배치되도록 조정된다.


- 만약, 디바이스가 가로 방향이고 키보드가 보이는 경우, 뷰의 위치가 위로 조정되어 표시된다.


덮이지 않는 영역은 사용자가 상호작용하지 못하도록 흐리게 표시 된다. 


Horizontally compact 환경에서는 fullScreen과 동일하게 적용된다.



image: ../Art/VCPG_PresentationStyles _fig_8-1_2x.png


4. currentContext

 - definesPresentationContext 프로퍼티가 true 인 뷰 컨트롤러 위에 현재 뷰 컨트롤러의 content가 표시된다.


- UIKit는 presentation 컨텍스트를 정의하고자 하는 뷰 컨트롤러를 찾기 위해 뷰 컨트롤러의 계층 구조를 따라갈 수 있다.


- presenting 뷰 컨트롤러에 속한 view는 presentation 완료 후 제거된다.


5. custom

 - custom presentation controller와 하나 이상의 custom animator 객체가 관리하는 custom view presentation style이다.


UIViewControllerTransitioningDelegate 프로토콜을 준수하는 presented 뷰 컨트롤러의 transitioningDelegate에 의해 제공된다.


6. overFullScreen

- presentation이 끝나도 presented 콘텐트 아래의 view는 view 계층 구조에서 제거되지 않는다.


- presented 뷰 컨트롤러가 불투명한 내용으로 화면을 채우지 않으면 presenting 뷰 컨트롤러의 내용이 표시된다.


7. overCurrentContext

- presentation이 끝나도 presented 콘텐트 아래의 view는 view 계층 구조에서 제거되지 않는다.


 - definesPresentationContext 프로퍼티가 true 인 뷰 컨트롤러 위에 현재 뷰 컨트롤러의 content가 표시된다.


- UIKit는 presentation 컨텍스트를 정의하고자 하는 뷰 컨트롤러를 찾기 위해 뷰 컨트롤러의 계층 구조를 따라갈 수 있다.


8. blurOverFullScreen

- full-screen presentation에서 새로운 내용을 표시하기 전에 기본 내용을 흐리게한다.


9. popover

iPad와 같은 Regular-width, Regular-Height 디바이스에서, 

popover view에서 뷰 컨트롤러를 표시한다.


- 백그라운드 컨텐트가 흐릿해지고, popover 외부를 탭하면 popover가 dismiss 된다. (안되게 할 수 있다.)


Horizontally compact 환경에서는 fullScreen과 동일하게 적용된다.


10. none

- 뷰 컨트롤러를 present 할 때 이 스타일을 사용하면 안된다.


- presentation controller가 이미 presented된 뷰 컨트롤러에 스타일을 적용하지 못하게 하려는 경우, adaptive delegate의 adaptivePresentationStyle(for:) 메소드에서 이를 반환하면 된다.



'iOS > Simple Knowledge' 카테고리의 다른 글

More Accessible in iOS  (0) 2018.02.23
layoutIfNeeded와 setNeedsLayout  (1) 2017.12.18
required init?(coder:)  (0) 2017.12.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함