我们可以使用以下内容来计算具有固定高度的UIWebView中HTML页面的scrollWidth。
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollWidth"]
是否可以在本地HTML页面上进行此评估而无需将请求加载到UIWebView中?
希望在单独的线程上发生这种情况。
答案 0 :(得分:3)
否(有点)。 html需要以某种身份呈现,以便能够进行任何类型的测量。 原因在于html / css / javascript协同工作的方式(javascript修改html / css属性,css修改html)。如果您必须在不使用UIWebView的情况下获得宽度,您将会遇到以下两种选择之一:
编辑:
你是否试图这样做,因为UIWebView阻止你是主线程,导致你的应用程序出现急动?如果是这样,你有没有考虑尝试这样的事情?:
UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,460)];
webview.delegate = self;
[webview loadRequest: [NSURLRequest requestWithURL:[NSURL urlFromString:@"/path/to/file.html"]]];
......然后再......
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
// run your code to get scroll width of page
}