我的图表在我的应用中显示正常,但当我将chartView
保存到相机胶卷或用于其他UIViewController
时,条形图不会显示。
在我的应用中很好:
将chartView
保存到相机胶卷或在另一个UIViewController
中使用时,条形码不会显示:
我尝试了几种方法 - 特别是将chartView
保存到相机胶卷中:
1)
let image1 = chartView.getChartImage(transparent: false)
UIImageWriteToSavedPhotosAlbum(image1!, nil, nil, nil)
2)
let image2 = captureScreen()
UIImageWriteToSavedPhotosAlbum(image2!, nil, nil, nil)
3)
extension UIImage {
convenience init(view: UIView) {
UIGraphicsBeginImageContext(view.frame.size)
view.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.init(cgImage: (image?.cgImage)!)
}
}
let image3 = UIImage(view: chartView)
UIImageWriteToSavedPhotosAlbum(image3, nil, nil, nil)
但对我来说没有任何作用。有什么想法吗?谢谢!
答案 0 :(得分:1)
使用getChartImage捕获图像时遇到了同样的问题。所以我创建了自己的捕捉Image的功能。
基本上我创建了一个UIView类并继承了LineChartView。 制作了UIView扩展,用于获取我的chartView的snapShot。
在UIView扩展中实现此功能:
func snapShot() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(self.frame.size , false, UIScreen.main.scale)
self.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
并像这样称呼它
let image = chartView.snapShot()
希望这有帮助!!!