簡體   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