我正在研究将UIView
转换为UIImage
的扩展,但我遇到了一个奇怪的问题,即我能够在iOS模拟器中获得正确的图像,但我在实际设备中获取了黑色图像。以下是我的代码将UIView转换为UIImage Swift 3
extension UIView {
func screenshotImage() -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, 0.0);
self.drawHierarchy(in: self.bounds, afterScreenUpdates: true)
let screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenShot!
}
}
任何人都可以解释我做错了什么,我无法在实际设备中获得正确的图像吗?
编辑
观察:
每当我路过一个UIView到这个扩展的模拟器,我得到这个观点
的完美形象每当我路过一个UIView到这个扩展在实际的设备我得到一个完全黑色的图像,而不是UIView中的元素,而不像模拟器的结果。
请检查[这里](https://stackoverflow.com/questions/4334233/how-to-capture-uiview-to-uiimage-without-loss-of-quality-on-retina-display),我想你得到了答案。 –
告诉我们你的代码如何不能做你想做的事情。你得到了什么错误,或者结果不是你想要的? –
@DuncanC我编辑了我的问题并添加了我的观察。让我知道如果它仍然不清楚 – iYoung