UIWebViewにもいろいろと見慣れないメソッドがiOS7で追加されていたので、使ってみました。
@property (nonatomic) UIWebPaginationMode paginationMode;
@property (nonatomic) UIWebPaginationBreakingMode paginationBreakingMode;
@property (nonatomic) CGFloat pageLength;
@property (nonatomic) CGFloat gapBetweenPages;
@property (nonatomic, readonly) NSUInteger pageCount;
名前から察するに、全体的に Webのページネーション に関する機能追加のようです。
UIWebPaginationMode には次のような値が定義されています。
typedef NS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated,
UIWebPaginationModeLeftToRight,
UIWebPaginationModeTopToBottom,
UIWebPaginationModeBottomToTop,
UIWebPaginationModeRightToLeft
};
ドキュメントによると UIWebView のプロパティ paginationMode
にはデフォルトで UIWebPaginationModeUnpaginate
が入っているとのこと。
paginationMode
を変えると何が起きるのか、次のように簡単なアプリをつくって試してみました。
画面下部の UISegmentedControl で paginationMode
を切り替えられます。
これで試してみて、「なるほど」と思った部分だけ紹介します。
##UIWebPaginationModeLeftToRight
paginationMode
に UIWebPaginationModeLeftToRight
を指定すると、
一見普通だったのが、水平方向にスクロールさせてみると、
なるほど、確かに Left to Right にページネーションされています。
ちなみに、 ロード完了したあとでも paginationMode
を変えると表示が更新されます (コンテンツ自体は変わりないので、当たり前ですが)。
##pageCount
paginationMode
を指定して描画すると pageCount
が取れるようになりました。UIPageControl の numberOfPages
に渡したりするとよさそうです。
ちなみに上記サンプルで表示しているのは自分のブログですが、26ページでした。
##ページングを有効にする
ページネーションしてくれるならページングを有効にしない手はない、ということで
self.webView.scrollView.pagingEnabled = YES;
するといい感じです。
##サンプル
『iOS7 Sampler』にサンプルコードを追加してあります。
##所感
Web漫画とかみるアプリにはいいかもしれません。