对于iPhone电子书应用程序,我需要将任意长的
HTML文档分解成适合一个屏幕的页面.如果我只是使用UIWebView,最底层的行倾向于只显示部分:其余的消失在视图的边缘.
所以我假设我需要知道UIWebView会显示多少条完整的行(或字符),给定源HTML,然后将其精确地提供给正确的数据量.这可能涉及大量计算,用户还需要更改字体和大小.
我不知道如果这是可能的,虽然像Stanza这样的应用程序采用HTML(epub)文件,并很好地分页.自从我看了JavaScript以来,这是一个很长的时间,那是值得一看的选择吗?
任何建议非常感谢!
更新
所以我打了一个可能的解决方案,使用JavaScript来标注每个元素的大小和位置的DOM树.那么应该可以重构树(使用内置的XSLT或JavaScript),将其切割成完全符合屏幕的页面.
这里的其余问题是,这总是打破段落边界的页面,因为没有访问文本在比P元素更低的级别.也许这可以通过将文本解析成单词,将每个单词封装在SPAN标签中,重复上述测量过程,然后仅显示适合屏幕的SPAN元素,将剩余的元素插入下一个页.
这听起来很复杂.我说话有任何意义吗?有更简单的方法吗?
解决方法
你应该看看PagedMedia CSS模块:
http://www.w3.org/TR/css3-page/
CSS3还支持多列布局(Google为“css3-multicol”),我没有足够的Karma来包含第二个链接:-)
CSS3还支持多列布局(Google为“css3-multicol”),我没有足够的Karma来包含第二个链接:-)
关于你的更新:如何做一个单一页面的布局,然后使用DIV与溢出:隐藏的文本部分.接下来的事情将是覆盖一个透明的项目,这将根据一些导航控件(或手势)以编程方式向上或向下滚动DIV PAGE_HEIGHT像素的内容.