保存条形图视图时未显示的条形图

时间:2017-07-03 20:55:23

标签: swift uiview ios-charts

我的图表在我的应用中显示正常,但当我将chartView保存到相机胶卷或用于其他UIViewController时,条形图不会显示

在我的应用中很好:

enter image description here

chartView保存到相机胶卷或在另一个UIViewController中使用时,条形码不会显示:

enter image description here

我尝试了几种方法 - 特别是将chartView保存到相机胶卷中:

1)

    let image1 = chartView.getChartImage(transparent: false)
    UIImageWriteToSavedPhotosAlbum(image1!, nil, nil, nil)

enter image description here

2)

    let image2 = captureScreen()
    UIImageWriteToSavedPhotosAlbum(image2!, nil, nil, nil)

enter image description here

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)

enter image description here

但对我来说没有任何作用。有什么想法吗?谢谢!

1 个答案:

答案 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()

希望这有帮助!!!