iphone - iOS - 同步加载 UIWebView 内容?

标签 iphone ios uitableview uiwebview

我有一个包含很多行的 UITableView,每一行都包含一个 UIWebView。这个webView的内容存储在我的数据库中(在应用程序上),tableView中每个单元格的高度是根据我的UIWebView的滚动高度计算的。

问题在这里,loadHtmlString 方法异步工作,所以当调用 UITableView 的 heighForRowAtIndexPath 方法时,数据还没有加载到 UIWebView(因为它工作异步)。所以我无法计算单元格所需的高度。

那么问题来了,是否可以同步加载一个UIWebView的内容呢?我的 html 文本很短,所以同步加载它应该不会花那么长时间。

编辑: 是否可以计算 html 字符串的预期高度而不将它放在 UIWebView 中,我知道这可以使用纯文本,我不知道 html

最佳答案

你可以:

1) 在第一次调用 heighForRowAtIndexPath 时返回默认高度

2) 加载你的 HTML

3) 等待事件 webViewDidFinishLoad 并将最终高度存储在数组中

  - (void)webViewDidFinishLoad:(UIWebView *)webView

4) 通过调用更新单元格高度

  [self.tableView beginUpdates];
  [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
  [self.tableView endUpdates];

5) 调用heighForRowAtIndexPath时返回最终高度

关于iphone - iOS - 同步加载 UIWebView 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830710/

相关文章:

ipad - 在iPhone中上传图像和文本数据

iphone - 同一 View 中的两个 uipicker

ios - 如何在 iOS 上退出应用程序时关闭网络扩展

ios - 我必须同时使用这两种方法吗?

swift - 解析collectionView中的显示图像

ios - Xcode 将 .a 库文件转换为 arm64 arch 支持的 .a 文件

iphone - 按钮操作没有响应 iphone

ios - 存档上传错误 : ERROR ITMS-90207 - The bundle does not contain a bundle executable

iOS:仅更改 UIView 的外观(无子类)- 可能吗?

iphone - 以编程方式强制 UIScrollView 停止滚动,以便与多个数据源共享 TableView