繁体   English   中英

使用 CoreGraphics 库显示 PDF 在 iOS 15 中无法正常工作

[英]Display a PDF does not work correctly in iOS 15 using CoreGraphics libraries

我有一个使用 CoreGraphics 和 CGPDFDocument 编码为 objective-c 的应用程序,它是一个 PDF 阅读器。

随着 iOS 15 的发布,我在渲染某些 PDF 文件中的某些页面时遇到了问题。 PDFKit 不存在该问题。

我还从苹果官方文档页面下载了 ZoomingPDFViewer 示例https://developer.apple.com/library/archive/samplecode/ZoomingPDFViewer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010281我看到了同样的事情发生了。

许多图像层不存在

由于我已经在 Apple Developer Forums 上发布了一个解决方法,所以我也想在这里分享它。 https://developer.apple.com/forums/thread/695439

我可以确认此问题自 iOS 15 起发生。就我而言,我认为这是由于在将图像渲染到 PDF 绘图上下文时颜色空间(尤其是 alpha 通道)的映射错误。

但是,我暂时找到了一个小的解决方法。 那就是将 bitmap 绘图上下文设置为非不透明。

UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);

关于 CATiledLayer(在 ZoomingPDFViewer 示例中使用),可以简单地将不透明标志设置为 false。

CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
tiledLayer.opaque = NO;

当然,如果 Apple 能够在未来的 iOS 版本中修复此问题,那将是最理想的。在此之前,我希望您发现我的解决方法有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM