如何获取UIWebView页码

时间:2014-01-26 08:02:33

标签: ios uiwebview

我使用以下代码对UIWebView进行分页。

self.webView.paginationMode = UIWebPaginationModeLeftToRight;
self.webView.paginationBreakingMode = UIWebPaginationBreakingModePage;
self.webView.scrollView.pagingEnabled = YES;

现在我想知道它创建的总页数。 IOS7文档说UIWebView有一个名为pageCount的属性。我试过了,但它总是返回1.

如何获得分页后创建的页数?

感谢。

2 个答案:

答案 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;