【iOS7】UIWebView의 새로운 기능:UIWebPagination

UIWebView에도 여러가지 익숙하지 않은 메소드가 iOS7에서 추가되어 있었으므로, 사용해 보았습니다.
@property (nonatomic) UIWebPaginationMode paginationMode;
@property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode;
@property (nonatomic) CGFloat pageLength;
@property (nonatomic) CGFloat gapBetweenPages;
@property (nonatomic, readonly) NSUInteger pageCount;

이름에서 알기 위해 전반적으로 웹 페이지 네이션과 관련된 기능을 추가하는 것 같습니다.

UIWebPaginationMode 에는 다음과 같은 값이 정의되고 있습니다.
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
    UIWebPaginationModeUnpaginated,
    UIWebPaginationModeLeftToRight,
    UIWebPaginationModeTopToBottom,
    UIWebPaginationModeBottomToTop,
    UIWebPaginationModeRightToLeft
};

문서에 따르면 UIWebView 속성 paginationMode에는 기본적으로 UIWebPaginationModeUnpaginate가 포함되어 있습니다.
paginationMode 를 바꾸면 무슨 일이 일어나는지, 다음과 같이 간단한 앱을 만들어 시험해 보았습니다.



화면 하단의 UISegmentedControl에서 paginationMode를 전환할 수 있습니다.

이것으로 시험해보고, 「과연」이라고 생각한 부분만 소개합니다.

UIWebPaginationModeLeftToRight


paginationModeUIWebPaginationModeLeftToRight 를 지정하면,



언뜻 보통이었던 것이, 수평 방향으로 스크롤시켜 보면,



과연, 확실히 Left to Right 에 페이지 네이션 되고 있습니다.

덧붙여서, 로드 완료한 후에도 paginationMode 를 바꾸면 표시가 갱신됩니다 (콘텐츠 자체는 바뀌지 않기 때문에, 당연합니다만).

pageCount


paginationMode 를 지정해 그리면 pageCount 를 취할 수 있게 되었습니다. UIPageControl numberOfPages 에 건네주면 좋을 것 같습니다.

덧붙여서 위의 샘플로 표시하고 있는 것은 자신의 블로그입니다만, 26 페이지였습니다.

페이징 사용



페이지 네이션을 해준다면 페이징을 활성화하지 않는 손은 없다.
self.webView.scrollView.pagingEnabled = YES;

그러면 좋은 느낌입니다.

샘플



iOS7 Sampler 에 샘플 코드를 추가하고 있습니다.



소감



웹 만화라고 물어보는 앱에 좋을지도 모릅니다.

좋은 웹페이지 즐겨찾기