PDF水平滚动查看

时间:2011-07-05 19:43:24

标签: objective-c cocoa-touch pdf uiwebview

我想了解一下如何实现水平滚动的PDF视图。

我知道如何使用UIWebView实现PDF阅读器,但只需垂直滚动。

3 个答案:

答案 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

https://github.com/iamruinous/Reader

答案 2 :(得分:1)

我找到了一个包含此功能的开放项目

https://github.com/vfr/Reader