WebView页数

时间:2013-04-12 11:27:28

标签: objective-c cocoa webview

我有WebView显示一些经常更新的内容。我想在我的用户界面中显示一个页面计数器,告诉用户如果要打印它们,网页视图会有多少页面。

我尝试过:

NSRange r = NSMakeRange(0, 0);
BOOL knows = [[[[webView mainFrame] frameView] documentView] knowsPageRange: &r];

,其中knows = YESr.length始终等于1。

我如何获取此信息? (如果可能的话,最好以高效的方式)。

1 个答案:

答案 0 :(得分:2)

不是一个非常优雅的解决方案,但可能包括:

NSString *heightStr = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; // Get the height of our webView
int height = [heightStr intValue];

CGFloat maxHeight   = kDefaultPageHeight - 2*kMargin;
CGFloat maxWidth    = kDefaultPageWidth - 2*kMargin;
int pages = ceil(height / maxHeight);
return pages;

通过Chris Mills' blog.