ios - UIWebView webViewDidFinishLoad 不返回嵌入式 scrollView 的正确内容大小

标签 ios iphone objective-c uiwebview mathjax

我正在将 mathml 内容加载到 UIWebView,有时数学表达式可能会穿过我的 webview 框架,用户必须滚动才能查看超出边界的内容.为了处理这种情况,只要用户是可滚动的内容,我就会向用户显示一个可视箭头指示器。 我的问题是,在我的 webViewDidFinishLoad 中,如果我尝试访问 webviewscrollView.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以及并尝试在 shouldStartLoadWithRequestwebViewDidFinishLoad 中捕获该事件,但即使这样也没有用。

最佳答案

试试这个

 float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight;"] floatValue];

关于ios - UIWebView webViewDidFinishLoad 不返回嵌入式 scrollView 的正确内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089611/

相关文章:

ios - @autoreleasepool 扩展 NSData 时?

ios - 具有多个部分的 TableView 仅在每个部分中选择一行

iphone - iPhone 应用程序中的音频反馈问题

ios - 执行 BLE 代码的文件

ios - 在应用程序扩展和容器应用程序之间共享数据

ios - 从 Storyboard 中撤消堆栈 View

ios - 如何在 facebook 墙上分享照片或链接而不使用 native ios 应用程序中的 FBSDKShareDialog

ios - iOS 7 中 ZBarReaderViewController 的内存相关问题

iphone - 按时间间隔访问和设置 iPhone 的闹钟/用户警报

ios - 处理 UITableViewCell 中的数据对象