我已经被困在这几个小时了。我正在尝试根据UIWebView的内容大小动态调整大小。我的问题是,当我在iPhone 5上运行我的应用程序时一切正常,但我在iPhone 4(以及模拟器 - 3.5英寸)上没有相同的行为。
- (void)webViewDidFinishLoad:(UIWebView *)webview {
CGFloat height = webview.scrollView.contentSize.height;
_descriptionHeight = height;
self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
}
使用此版本的代码,在iPhone 4上,height
始终等于0,无论内容是什么。我也尝试用JS使用
[[webview stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue]
但在这种情况下,返回的值总是480(这是屏幕的高度)。
这两种方法在iPhone 5上运行良好,问题仅在于4(都运行iOS6)。
有什么想法吗?
修改 我设法找到了重现问题的方法。我有一个包含一个部分的表视图,8个静态单元格。我的webview位于第4个单元格内(从顶部开始,行= 3)。如果我将我的单元格移动到第一个位置(行= 0),一切正常。如果我把它移回第4位,我可以重现我的问题。你们认为它可能是什么? UITableView中的一个错误?
答案 0 :(得分:0)
我找到了。看完我的屏幕后,我最终意识到在iPhone 5上,当屏幕加载时显示包含我的UIWebView
的单元格,就像iPhone 4一样,因为屏幕较小,我不得不滚动一个有点看我的牢房。
我认为,在iPhone 4上,由于最初看不到网页视图,这就是我继续获得有趣结果的原因。
我最终在
中移动了webView loadHTMLString:
选择器
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
现在一切正常。
所以我设法修复了我的问题,但如果有人能解释为什么你不能获得UIWebView的内容大小,如果它当前不可见,那么在UITableView中,我们将非常感激。