如何在 iPad 中实现不使用 UIWebView 的 PDF 阅读器

Posted

技术标签:

【中文标题】如何在 iPad 中实现不使用 UIWebView 的 PDF 阅读器【英文标题】:How can i implement a PDF reader not using UIWebView in iPad 【发布时间】:2010-06-03 06:15:14 【问题描述】:

我们如何在不使用UIWebView 的情况下为 iPad 实现 PDF 阅读器?它需要添加手势以通过手触摸更改页面的选项。我该怎么做?为此需要实现哪些类。

更新:

我得到了类似 Quartz 2D Programming Guide for PDF Documents 的东西。但我无法确定我应该在哪里放置 PDF 的上下文。我应该把它放在UIView吗?

参考:http://developer.apple.com/iphone/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html#//apple_ref/doc/uid/TP30001066-CH214-TPXREF109

【问题讨论】:

Haiii 伙计们...我得到了类似 Quartz 2D Programming Guide for PDF Documents 的东西。但我无法确定我应该在哪里放置 pdf 的上下文。我应该把它放在 UIView 中吗?请立即回复我。谢谢你 Sagar S. Kadookkunnan developer.apple.com/iphone/library/documentation/… 参考:- 【参考方案1】:

CGPDFDocument 由一系列页面组成。如果您使用 CGPDFPageRef 成员创建自定义 UIView,则可以使用它来绘制页面。

@interface ExamplePDFPageView : UIView
    CGPDFPageRef page;
@end

@implementation ExamplePDFPageView
-(void) drawRect:(CGRect)inFrame 
    CGContextDrawPDFPage( UIGraphicsGetCurrentContext() , page );

@end

这是构建 pdf 阅读器的基本构建块。您可以让视图拥有整个文档而不仅仅是一页,但绘图是每页完成的。我通常让一些控制器类拥有文档并将页面分配给视图。

对于手势,将 UISwipeGestureRecognizer 或其他手势识别器添加到视图。

【讨论】:

【参考方案2】:

阅读《Quartz 2D Programming Guide》,并在 XCode 文档中搜索 CGPDF... 函数。

【讨论】:

以上是关于如何在 iPad 中实现不使用 UIWebView 的 PDF 阅读器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPad 上的 UIWebView 中上传文件?

如何强制在 UIWebView 中播放的视频在 iPad 上全屏显示?

在 iPhone 和 iPad 上使用 UIWebView 进行隐私浏览

你能在 Sqlite3(使用 Django)中实现不区分大小写的“唯一”约束吗?

如何在 iPad 的应用程序中保存 UIWebView 中的一些数据

Windows中实现不依赖账户登录的开机启动程序