保存条形图视图时不显示条形图

Bars not showing when saving Bar Chart view

我的图表在我的应用程序中显示正常,但是当我将 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)

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

我在使用 getChartImage 捕获图像时遇到了同样的问题。所以我做了自己的捕获图像的功能。

基本上我做了一个UIView class 继承了LineChartView。 制作 UIView 扩展以拍摄我的 chartView 的快照。

在 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()

希望对您有所帮助!!!