我想了解一下如何实现水平滚动的PDF视图。
我知道如何使用UIWebView实现PDF阅读器,但只需垂直滚动。
答案 0 :(得分:4)
我做到了这一点。代码对于付费客户来说是私有的,所以我不能直接分享它,但基本的想法是写:
使用CGPDFPageRef
以及CGPDFDocument*
和CGContextDrawPDFPage
系列函数呈现PDF的单个页面的一个UIView子类。它有助于此视图从[CATiledLayer class]
类方法返回layerClass
,并适当地设置图层的levelsOfDetail和tileSize属性。我还实现sizeThatFits
来返回页面大小和一个小水槽,并在pdf页面的边缘呈现一个微妙的阴影。
请记住,UIKit绘图是从CG绘图中颠倒过来的;所以在绘画之前要做CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); CGContextScaleCTM(ctx, 1.0, -1.0);
。
一个UIView子类包含和布局(并且代表)分页模式下的UIScrollView(主水平分页器),以及每个页面的单独UIScrollView,每个包含上述视图之一(用于放大)单独的页面。)嵌套的滚动视图是Apple明确认可的做这种事情的方式。这个视图需要按照你想要的方式布置页面;据推测,在一个长的水平条带中,每个都缩放到合适的尺寸。
如果您不需要页面缩放,则可以跳过嵌套滚动视图并直接在水平滚动条中布置页面视图。
TL; DR:不幸的是,它并不像在UIWebView中抛出它那么简单;但它是可行的,直截了当的方法确实有效。
答案 1 :(得分:1)
我找到了一个具有此功能的开放项目= D
答案 2 :(得分:1)
我找到了一个包含此功能的开放项目