objective-c - 电子阅读器式分页

标签 objective-c xml ios uiwebview epub

我正在从 XML 文件中获取文本数据,并希望它在 iPad 上的 UIWebView 中以类似书页的格式显示。 XML 文件来自 .epub,每个文件都包含一本书的一个章节,仅由 p 标签分隔。

我想根据整个 iPad 屏幕的 UIWebView 大小以及用户选择的字体大小,将这些文件动态分页为类似书本的页面。我目前正在将一个带有相关 css 的空白 html 页面加载到 UIWebView 中,根据字符数从 XML 中获取段落作为字符串,然后使用 StringByEvaluatingJavaScriptFromString 将它们打印到 html 中和 innerHTML 属性。

显然,按字符数执行此操作会创建间距不正确、格式奇怪的页面,但我不确定如何对文本“分页”。

我想做的是类似于 iPad 上的“eReader”应用程序:http://www.ereader.com/ .他们似乎将单个文件动态地分解为页面,并将其加载到 UIWebView 中。这是怎么做到的?

最佳答案

大多数基于 UIWebView 的 EPUB 阅读器只是使用 CSS3 Columns 对文档进行分页。

您可以在 http://www.quirksmode.org/css/multicolumn.html 上看到实际效果

基本思想是将文档“列化”,然后水平滚动以显示特定页面。

在 iPhone 和 iPad 上为一个流行的(加拿大)电子阅读器应用程序完成此操作后,我可以告诉您该技术有效但远非理想。

关于objective-c - 电子阅读器式分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208423/

相关文章:

ios - 使用 CoreGraphics 发布自定义 UIView

ios - UITableViewCell 中的 TapGesture 导致其他单元格状态改变

objective-c - 写入文件 Xcode MacOS

json - XML 转换为 JSON R

ios - 安装后将文件添加到 iOS 应用程序

iphone - 进入IOS的SpringBoard进程

objective-c - 连接到 MS SQL 服务器的 C 库 [适用于 iOS]

objective-c - GCD 计时器从不触发

java - 添加一个元素到根元素

Python SAX 解析器 : resolveEntity