对于iPhone电子书应用程序,我需要将任意长的HTML文档分解为完全适合一个屏幕的页面.如果我只是简单地使用UIWebView,那么最底部的线往往只能部分显示:其余的线从视图的边缘消失.
所以我假设我需要知道在给定源HTML的情况下,UIWebView将显示多少完整的行(或字符),然后将其准确地提供给适当数量的数据.这可能涉及大量计算,用户还需要能够更改字体和大小.
我不知道这是否可能,尽管像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来包含第二个链接到这里:-)
关于您的更新:如何进行单个页面的布局,然后使用带溢出的DIV:隐藏文本部分.接下来的事情是将透明项目叠加在其上,这将根据某些导航控件(或手势)以编程方式向上或向下滚动DIV PAGE_HEIGHT像素的内部内容.