티스토리 뷰
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과 동일하게 적용된다.
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 |