objective-c - 带水平滚动的 PDF View

标签 objective-c cocoa-touch pdf uiwebview

我想获得有关如何实现水平滚动的 PDF View 的一些提示。

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

最佳答案

我已经做到了。代码是付费客户私有(private)的,所以我不能直接分享,但基本思路是这样写:

  • 一个呈现 PDF 单页的 UIView 子类,使用 CGPDFPageRefCGPDFDocument*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/9666100/

相关文章:

ios - 使用过渡动画 ios4.0+ 重新加载/刷新 ViewController 的 SuperView

ios - 设置 NSUserDefault 崩溃

javascript - 如何在 Node/Javascript 中以编程方式减小 PDF 大小

php - PDF 中的工具提示 : are they possible?

ios - 如何创建具有黑白像素的图像?

Objective-C in,out,inout,byref,byval, .. 等等。这些是什么?

iphone - 即使在重新启动我的开发 Mac 之后,实体仍然不符合键的键值编码

ios - UITapGestureRecognizer 与 UISearchBar

iphone - 在哪里可以找到有关私有(private) iPhone API 的信息?

pdf - Google Docs PDF查看器的图像渲染不佳