我正在将 mathml 内容加载到 UIWebView
,有时数学表达式可能会穿过我的 webview
框架,用户必须滚动才能查看超出边界的内容.为了处理这种情况,只要用户是可滚动的内容,我就会向用户显示一个可视箭头指示器。
我的问题是,在我的 webViewDidFinishLoad
中,如果我尝试访问 webview
,scrollView.contentSize
它不会返回准确的内容大小,但如果我在一些延迟后用其他方法检查它正在获得正确的内容大小。但是我不认为用计时器检查是一种有效的方法。
下面是我的代码片段,
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"contentSize %@",NSStringFromCGSize(webView.scrollView.contentSize));// returning worng values, even if content size is more this is returning default frame values of webview
[self performSelector:@selector(checkContentSize) withObject:self afterDelay:1.5];//working properly after delay
}
如何在延迟后不使用 performSelector
的情况下获得适当的 webView
内容大小?
我什至试过this post以及并尝试在 shouldStartLoadWithRequest
和 webViewDidFinishLoad
中捕获该事件,但即使这样也没有用。
最佳答案
试试这个
float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight;"] floatValue];
关于ios - UIWebView webViewDidFinishLoad 不返回嵌入式 scrollView 的正确内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089611/