티스토리 뷰

개발 블로그/iOS

present Style 알아보기

개발자 아라찌 2020. 8. 27. 17:28
728x90

안녕하세요! iOS 앱 개발을 하면서 뷰를 이동하는 부분은 필수적으로 들어가죠?? 오늘은 뷰를 이동할 때 어떤 식으로 뷰가 전환되고 뜰 지를 설정하는 ModalPresentationStyle, TransitionStyle 에 대해 알아볼 꺼에요!

요즘 토이프로젝트에서 커스텀 알람창을 만들고 있는데, 알람창을 띄우는 방법에 공부하다가 알게되서 정리하는 포스팅이에요. 커스텀 알람창을 구글링을 하다보면 커스텀 모달 방법이 뜨는데 ㅠ 완전 커스텀을 할 것이 아니라면 꼭 커스텀 모달을 사용할 필요는 없어요!

예전과는 다르게 iOS13 이상부턴 modal 방식으로 뷰를 띄울 때 마치 팝업뷰가 뜨는 듯이 뷰가 위에서 아래로 내려오죠?? 이렇게요 ㅠㅠ..

그 이유는 modalPresentationStyle 디폴트 값이 변해서 그렇습니다. iOS 13 아랫버전에는 디폴트 값이 fullScreen 이었는데, iOS13 이후부턴 기본값이 automatic으로 변해서 그렇습니다. 오토매틱은 뭐지... 해서 찾아보니 다양한 스타일들이 있어서 이번 포스팅에서 이부분을 알아보도록 하겠습니다!

.

apple develop - ModalPresentationStyle
애플 개발자 문서를 보면 "모달로 표시되는 뷰 컨트롤러의 표시 스타일" 이라고 적혀 있습니다. 그리고 여러 case로 프레젠테이션 스타일이 작성되어 있는데, 이 부분에 대해 알아보겠습니다.

UIModalPresentationStyle

  1. automatic

    • 디폴트 값으로 시스템에서 선택한 기본 스타일 이라고 하는데, 상황에 따라 적절한 스타일로 띄워주는 스타일 인것 같습니다. 대부분은 저희가 아는 위에서 스르륵 뜨는 스타일.. 이겠지만 예를들어서 카메라 컨트롤러를 띄운다면 fullScreen으로 띄워주는.. 상황에 따라 적절한 스타일로 띄워주는 스타일 인 것 같습니당

  1. fullScreen

    • 제시된 뷰가 화면을 덮는 프레젠테이션 스타일 이라고 하네요. 여기서 특징은 새로 띄워진 뷰 아래 깔리는 뷰들은 전혀 보이지 않게 된다는 겁니다. 이전에 알고 있던 iOS 13 버전 전의 디폴트 값이라고 해요!

  1. pageSheet & formSheet

    • 기본 콘텐츠를 부분적으로 덮는 프레젠테이션 스타일(pageSheet) 화면 중앙에 콘텐츠를 표시하는 프레젠테이션 스타일(formSheet).. 지금의 오토매틱 스타일이 대부분 선택하는 스르륵 올라오는 스타일...

  1. currentContext

    • 콘텐츠가 다른 뷰 컨트롤러의 콘텐츠 위에 표시되는 프레젠테이션 스타일 이라고 하는데.. 실행을 해보면 똑같이 뜰 텐데, 이유는 다른 뷰 컨트롤러 위에 뜨는거라.. 고 생각을 합니다. 대략 요런 느낌으로.. 아마 popOver과 같이 패드에서 사용하게 될 스타일이라고 생각합니다.

  1. overFullScreen

    • fullScreen처럼 화면을 뒤덮지만 띄워지는 뷰가 투명할 경우 아래 쌓인 뷰가 보인다고 합니다.

그럼 이번엔 어떤식으로 전환이 될 지를 결정하는 TransitionStyle 에 대하 알아보도록 하겠습니다!

TransitionStyle

  1. coverVertical

    • 디폴트 값으로 화면이 아래에서 위로 올라오는 스타일이라고 합니다.

  1. flipHorizontal

    • 뷰가 오른쪽에서 왼쪽으로 뒤집기를 하면서 전환되는 스타일이라고 하네요.. 개인적으로 별로 안이쁜 것 같아요 ㅠㅠ

  1. crossDissolve

    • 현재 뷰가 페이드 아웃 되면서 새 뷰가 페이드 인 되는 형식이래요!! 제가 원하던 형식이 여기있었네용 ㅋㅋ

  1. partialCurl

    • 책을 넘기듯한 스타일의 형식이에요.. 그런데 사용 조건이 있네요. presentStyle이 fullScreen 일 경우에만 가능하대요. 안그러면 에러 납니다.

설정 방법

마지막으로..

오늘은 뷰를 이동할 때 화면 전환 스타일을 정해줄 수 있는 ModalPresentationStyle, TransitionStyle 에 대해 알아봤습니다.

전에 봤던 내용이긴 한데.. 역시 직접 해보고 안해보고는 차이가 큰 것 같아요. 알아두면 도움이 될 내용이라고 생각해서 정리를 해봤습니다. 요즘은 rxDataSource 부분을 보고 있는데 너무 어렵네요 ㅠㅠ.. 앞으로 개발을 하면서 추가로 알게되는 내용들이 생기면 또 정리해서 포스팅을 올려보도록 하겠습니다. 그럼 다들 코로나 조심하시고 건강하세요!

참고

추가로 혹시 iOS 앱 개발이 아직 미숙하다고 느끼시고 이 강의를 안들어 보신 분은 edWith - 부스트코스 iOS 강의를 꼭 들어보시는걸 추천드려요. 카카오톡 오픈톡방에 iOS 부스트코스 오픈톡방도 있으니 한번쯤 들어오셔서 swift 질문도 하고 정보도 공유하면 좋을 것 같아요.

728x90
댓글