我使用以下代码对UIWebView
进行分页。
self.webView.paginationMode = UIWebPaginationModeLeftToRight;
self.webView.paginationBreakingMode = UIWebPaginationBreakingModePage;
self.webView.scrollView.pagingEnabled = YES;
现在我想知道它创建的总页数。 IOS7文档说UIWebView
有一个名为pageCount
的属性。我试过了,但它总是返回1.
如何获得分页后创建的页数?
感谢。
答案 0 :(得分:3)
如果您只想要使用CoreGraphics的页数
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)[NSURL fileURLWithPath:@"your path"]);
int pageCount = CGPDFDocumentGetNumberOfPages(pdf);
CGPDFDocumentRelease(pdf);
如果要计算HTML内容的页数,则需要设置委托
self.webView.delegate = self;
并实现UIWebViewDelegate方法
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSUInteger count1 = webView.pageCount; // for iOS7 only!
NSUInteger count2 = webView.scrollView.contentSize.width / webView.scrollView.frame.size.width; // for horizontal paging
NSUInteger count3 = webView.scrollView.contentSize.height / webView.scrollView.frame.size.height; // for vertical paging
}
请注意,只有在完全呈现所请求的HTML页面后才能获取pageCount。
答案 1 :(得分:1)
UIWebView是UIScrollView的子类。您可以检测滚动视图委托方法的UIWebView页面更改事件:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
每次webView滚动时都会调用此委托。自己维护您的页码。您可以使用scrollView.contentOffset.x和scrollView.contentOffset.y来确定滚动方向。
您可以找到更多帮助here。
修改强> 我们可以从contentoffset找到scrollview的页码。尝试类似webView的东西。 int page = scrollView.contentOffset.x / scrollView.frame.size.width;