【发布时间】:2013-09-28 04:38:44
【问题描述】:
我正在尝试实现与 facebook 的共享应用程序。 我使用此代码截取屏幕截图:
CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
它在 iOS 6 上运行良好,但在 iOS 7 中图像看起来很糟糕。 我用了这个答案:iOS: what's the fastest, most performant way to make a screenshot programmatically? 试图修复它,它有帮助,但屏幕截图看起来仍然很糟糕。 屏幕得到另一种颜色,并且某些对象(如标签)未显示在拍摄的图像上。 有什么帮助吗?
----更新----
我设法解决了大多数对象,将它们更改为保留而不是弱。我的主要问题仍然是我的表格视图,它显示为一个大的白色块(它应该是透明的,带有白色文本的标签,所以我们看到的只是白色单元格)。我确实尝试将表格背景定义为 clearcolor,没有帮助..
----上次更新---
这里有一些很棒的答案,与我的问题无关。我想让它在运行 iOS7 但不使用 iOS7 SDK 的设备上运行,因为此时切换项目 SDK 需要付出很多努力,当项目快完成时。
无论如何,我添加的代码最终解决了我的问题:
这个改动简单解决了问题:
UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);
代替:
UIGraphicsBeginImageContext(imageSize);
【问题讨论】:
标签: ios objective-c iphone xcode screenshot