使用 Charts 库和 iOS swift 的饼图 3

Pie chart using Charts library with iOS swift 3

我想在 Github 上使用饼图 danielgindi/Charts 库。 我的代码是这样的:

import UIKit
import Charts

class ChartViewController: UIViewController {

    @IBOutlet weak var pieChartView: PieChartView!

    override func viewDidLoad() {
        super.viewDidLoad()

    // Do any additional setup after loading the view.

        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
        let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]

        setChart(dataPoints: months, values: unitsSold)

    }


    func setChart(dataPoints: [String], values: [Double]) {

        var dataEntries: [ChartDataEntry] = []

        for i in 0..<dataPoints.count {
            let dataEntry1 = PieChartDataEntry(value: Double(i), label: dataPoints[i], data:  dataPoints[i] as AnyObject)
            dataEntries.append(dataEntry1)
        }

        let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold")
        let pieChartData = PieChartData(dataSet: pieChartDataSet)
        pieChartView.data = pieChartData

        var colors: [UIColor] = []

        for _ in 0..<dataPoints.count {
            let red = Double(arc4random_uniform(256))
            let green = Double(arc4random_uniform(256))
            let blue = Double(arc4random_uniform(256))

            let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
            colors.append(color)
        }

        pieChartDataSet.colors = colors
    }
}

但是当我运行它时,打破这一行:

pieChartView.data = pieChartData

我之前没有使用过任何图表库,但是我必须使用一个项目。这个图书馆或另一个图书馆对我来说并不重要。如果你知道回答我的问题,请帮助我解决。或者你可以告诉我另一个与 switf 3 兼容的库。谢谢。

我以编程方式初始化 pieChartView 并将其添加到 tabview。代码运行良好,不会崩溃。我进行了必要的更改并将其添加到下面:

import UIKit
import Charts

class ChartViewController: UIViewController {

   var pieChartView: PieChartView!

   override func viewDidLoad() {
       super.viewDidLoad()

       // Do any additional setup after loading the view.

       let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
       let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]

       pieChartView = PieChartView(frame: self.view.bounds)
       self.view.addSubview(pieChartView!)
       setChart(dataPoints: months, values: unitsSold)
   }

   func setChart(dataPoints: [String], values: [Double]) {

       var dataEntries: [ChartDataEntry] = []

       for i in 0..<dataPoints.count {
           let dataEntry1 = PieChartDataEntry(value: values[i], label: dataPoints[i])
           dataEntries.append(dataEntry1)
       }

       let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold")
       let pieChartData = PieChartData(dataSet: pieChartDataSet)
       pieChartView.data = pieChartData

       var colors: [UIColor] = []

       for _ in 0..<dataPoints.count {
           let red = Double(arc4random_uniform(256))
           let green = Double(arc4random_uniform(256))
           let blue = Double(arc4random_uniform(256))

           let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
           colors.append(color)
       }

       pieChartDataSet.colors = colors
   }
}