对于 iPhone 电子书应用程序,我需要将任意长的 HTML 文档分解为完全适合一个屏幕的页面。如果我只是使用 UIWebView 来实现此目的,则最底部的行往往只会部分显示:其余部分会从视图边缘消失。
因此,我假设我需要知道在给定源 HTML 的情况下 UIWebView 将显示多少个完整行(或字符),然后为其提供正确数量的数据。这可能涉及大量计算,并且用户还需要能够更改字体和大小。
我不知道这是否可能,尽管像 Stanza 这样的应用程序可以很好地对 HTML (epub) 文件进行分页。我已经很长时间没有研究过 JavaScript 了,那是一个值得考虑的选择吗?
非常感谢任何建议!
update
所以我想到了一个可能的解决方案,使用 JavaScript 用每个元素的大小和位置来注释 DOM 树。然后应该可以重构树(使用内置的 XSLT 或 JavaScript),将其分割成完全适合屏幕的页面。
这里剩下的问题是,这总是会在段落边界上破坏页面,因为无法访问比 P 元素更低级别的文本。也许可以通过将文本解析为单词,将每个单词封装在 SPAN 标签中,重复上面的测量过程,然后仅显示适合屏幕的 SPAN 元素,将剩余的插入到下一个单词的前面来解决这个问题。页。
这一切听起来相当复杂。我说的有道理吗?有没有更简单的方法?
您应该查看 PagedMedia CSS 模块:http://www.w3.org/TR/css3-page/ http://www.w3.org/TR/css3-page/CSS3 还支持多列布局(谷歌搜索“css3-multicol”。我没有足够的 Karma 在这里包含第二个链接:-)
关于您的更新:怎么样做一个单页的布局,然后使用带有溢出的DIV:隐藏文本部分。接下来的事情是在其上覆盖一个透明项目,这将根据某些导航控件(或手势)以编程方式向上或向下滚动 DIV PAGE_HEIGHT 像素的内部内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)