iOS:将大型HTML内容拆分为多个水平分页视图

时间:2016-02-18 08:40:17

标签: html ios swift uiwebview

我获得了大量的HTML内容(让我们说一篇巨大的博文)。目标是将此HTML内容呈现为多个页面(分页应用程序)。为清楚起见,不是在UIWebView中进行垂直滚动,而是将内容拆分为书籍(即,您将页面移动到内容的其余部分,而不是在典型的UIWebView中向下滚动)

我在SO上查了类似的帖子。不幸的是,这些帖子在我的案例中并没有那么有用。供参考,以下是类似的SO帖子:

  1. Split html string into multiple pages
  2. How to divide the webview content in multiple pages
  3. Present html content as dynamic "pages"
  4. 外部参考:https://recalll.co/app/?q=android%20webview%20-%20Split%20html%20string%20into%20multiple%20pages
  5. 如果给出HTML内容,我如何实现基于页面的(非垂直滚动)应用程序?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但以防万一:)

您的问题有一个非常简单的解决方案。 UIWebView的每个对象都有一个名为scrollView的字段,该字段是UIScrollView类的对象。 UIScrollView通过设置这些值来支持分页:

webView.scrollView.isPagingEnabled = true // enable pagination
webView.paginationMode = .leftToRight // set horizontal mode
webView.paginationBreakingMode = .page // pages or collumns (latter need css support though 

然后,您可以使用调用webView的数据填充loadHTMLString

guard let path = Bundle.main.path(forResource: "NameOfYourFile", ofType: "html") else {
    return
}
guard let data = FileManager.default.contents (atPath: path) else {
    return
}
guard let contentString = String(data: data, encoding: .utf8) else {
    return
}
let webView = UIWebView(frame: view.frame)
webView.loadHTMLString(contentString, baseURL: nil)    
view.addSubview(webView)

这就是你需要做的一切。为了记录,我将上面的代码行放在我的测试项目中的viewDidLoad方法中。