我已经搜索了互联网来回答这个问题,但还没有找到答案。
我正在编写一个使用 QLPrieviewController 显示文档的应用程序。我想把屏幕复制到外部显示器上。我让它适用于 ios5,代码如下。此代码不再适用于 ios6。
UIGraphicsBeginImageContextWithOptions(self.previewController.view.frame.size, NO, 0.0);
[self.previewController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * clonedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[mirrorWebPageView setImage: clonedImage];
我尝试使用渲染前窗来查看使用以下代码会得到什么。
NSArray * currentwindows = [[UIApplication sharedApplication] windows];
UIWindow *trythisone = [currentwindows objectAtIndex:0];
UIGraphicsBeginImageContextWithOptions(trythisone.frame.size, NO, 0.0);
[trythisone.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * clonedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[mirrorWebPageView setImage: clonedImage];
我显示了导航栏和底部工具栏,但 View 中未显示 QLPreviewController 的内容。
我已阅读 RenderIncontext 存在一些问题,但无法确定这是否是我的问题。
有关如何解决此问题的任何想法都会有所帮助。
谢谢
最佳答案
我尝试在 iOS6 上以编程方式进行屏幕捕获,它只会捕获背景 View 。在 iOS5 上它可以工作。它可能是一种安全功能,可以防止程序捕获您正在查看的内容并将其发送到某个地方。
关于ios - iOS6 中使用 QLPreviewController 渲染上下文的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823160/