我想获得有关如何实现水平滚动的 PDF View 的一些提示。
我知道如何使用 UIWebView 实现 PDF 阅读器,但只是垂直滚动。
最佳答案
我已经做到了。代码是付费客户私有(private)的,所以我不能直接分享,但基本思路是这样写:
一个呈现 PDF 单页的 UIView 子类,使用
CGPDFPageRef
和CGPDFDocument*
和CGContextDrawPDFPage
系列职能。从layerClass
类方法返回[CATiledLayer class]
并适本地设置图层的 levelsOfDetail 和 tileSize 属性对这个 View 有很大帮助。我的还实现了sizeThatFits
以返回页面大小加上一个小间距,并在 pdf 页面的边缘周围呈现一个微妙的阴影。请记住,UIKit 绘图与 CG 绘图是颠倒的;
CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height); 也是如此CGContextScaleCTM(ctx, 1.0, -1.0);
绘画前。一个 UIView 子类包含和布局(并被委托(delegate))一个处于分页模式的 UIScrollView(主水平分页器),每个页面都有一个单独的 UIScrollView,每个包含上述 View 之一(用于放大单个页面。)嵌套 ScrollView 是 Apple 明确认可的执行此类操作的方式。这个 View 需要按照你想要的方式布置页面;大概在一个长的水平 strip 中,每个都缩放到合适的尺寸。
如果不需要页面缩放,可以跳过嵌套 ScrollView ,直接在水平滚动条中布局页面 View 。
TL;DR:不幸的是,它不像在 UIWebView 中扔它那么简单;但这是可行的,而且直接的方法确实有效。
关于objective-c - 带水平滚动的 PDF View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588003/