본문 바로가기

Tech/iOS

[iOS]Day43 - UIPageViewController

728x90

책 넘기는 기능

궁금했었는데

알아보자


UIPageViewController

UIPageController은 User가 보는 페이지가 몇번째 페이지인지 알 수 있게 해주는 기능이다 

Storyboard에 pageViewController 한개와 viewController 3개를 설정해주자

우리는 PageViewControllerList라는 배열에 설정해 둔 ViewController 3개를 담고 

pageViewController에 첫번째 부분을 설정해 준다

왜 viewDidLoad에서 createPageViewController 호출 후에 configurePageViewController을 호출해야 할까?

-> 첫번째 부분을 configurePageViewController에서 명시해주는데 페이지를 만들어지지 않은 상태에서 명시는 불가능

호출 순서가 중요하다

 

UIPageViewControllerDelegate, Datasource 프로토콜을 받으면 

ViewControllerBefore, ViewControllerAfter라는 함수가 규약적으로 생성되는 것을 볼 수 있다

두개의 pageViewController method는 아까 생성한 viewController의 Index를 통해 before, after의 Index를 계산한다

before, after의 값이 존재한다면 값을 반환하고 없으면 Nil로 반환한다 

before, after를 설정 한 후 전체 페이지 수를 설정해준다

presentaionIndex는 시작할 페이지의 index를 설정해준다

 

App을 보다 보면 저번에 만들었던 배너부분도 아래에 페이지 표시가 있어서 배너도 혹시 PageViewController로 만들 수 있지 않을까?라는 생각을 할 수 있다

그렇다

 

ViewController를 하나 만든 후 ContainerView를 만들어 준다 

ContainerView에 아까 만든 PageViewController를 드래그 해준다 

이때 꼭 Embed를 해주어야 한다 

그 후에 ViewController에 PageView가 User에게 보여지고 싶은 부분을 UIView로 설정해주면 

View안에 PageView가 보이는 형태가 된다

(마치 배너 뷰처럼 작동되는 것이다)

PageViewController를 활용해서 Intro화면을 만들어 보았다