Как сделать круговую диаграмму для детей в iOS?

Как сделать круговые диаграммы для дочерних представлений? В моей истории доска с 4 детскими взглядами. Я пытаюсь показать 4 различных круговых диаграммы на основе выбора (я использую сегментированный элемент управления, который имеет 4 сегмента). Я попытался с примерами данных, но не смог отрисовать круговую диаграмму (так как на ней нет доступных данных). Как добавить данные круговой диаграммы в дочерние представления?

[Примечание:- Я использую библиотеку danielgindib и swift 3 ]

Скриншот моей раскадровки

Скриншот раскадровки 1 Скриншот раскадровки 2

SecondViewController.swift

import UIKit
import Charts

class SecondViewController: UIViewController, ChartViewDelegate{

var controllerName:String?

@IBOutlet weak var pChartViewA: PieChartView!

@IBOutlet weak var pChartViewB: PieChartView!

@IBOutlet weak var pChartViewC: PieChartView!

@IBOutlet weak var pChartViewD: PieChartView!

override func viewDidLoad() {
    super.viewDidLoad()

    self.pChartViewA.delegate = self
   // self.pChartViewB.delegate = self
    //self.pChartViewC.delegate = self
   // self.pChartViewD.delegate = self

    self.pChartViewA.alpha = 1

    //self.pChartView.delegate = self



    // Pie Chart
    pChartViewA.noDataText = "You need to provide data for the chart."

    let pys1 = Array(1..<10).map { x in return sin(Double(x) / 2.0 / 3.141 * 1.5) * 100.0 }

    let pyse1 = pys1.enumerated().map { x, y in return PieChartDataEntry(value: y, label: String(x)) }

    let pdata = PieChartData()
    let pds1  = PieChartDataSet(values: pyse1, label: "Hello")

    pds1.colors = ChartColorTemplates.vordiplom()

    pdata.addDataSet(pds1)

    let paragraphStyle: NSMutableParagraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
    paragraphStyle.lineBreakMode = .byTruncatingTail
    paragraphStyle.alignment = .center
    let centerText: NSMutableAttributedString = NSMutableAttributedString(string: "Sample Screening Pie")

    self.pChartViewA.centerAttributedText = centerText

    self.pChartViewA.data = pdata

    self.pChartViewA.chartDescription?.text = "Piechart Demo"



}

@IBAction func ChangeComponent(_ sender: AnyObject) {
    if sender.selectedSegmentIndex == 0 {
        UIView.animate(withDuration: 0.5, animations: {
            self.pChartViewA.alpha = 1
            self.pChartViewB.alpha = 0
            self.pChartViewC.alpha = 0
            self.pChartViewD.alpha = 0

            // Pie Chart
            self.pChartViewA.noDataText = "You need to provide data for the chart."

            let pys1 = Array(1..<10).map { x in return sin(Double(x) / 2.0 / 3.141 * 1.5) * 100.0 }

            let pyse1 = pys1.enumerated().map { x, y in return PieChartDataEntry(value: y, label: String(x)) }

            let pdata = PieChartData()
            let pds1  = PieChartDataSet(values: pyse1, label: "Hello")

            pds1.colors = ChartColorTemplates.vordiplom()

            pdata.addDataSet(pds1)

            let paragraphStyle: NSMutableParagraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
            paragraphStyle.lineBreakMode = .byTruncatingTail
            paragraphStyle.alignment = .center
            let centerText: NSMutableAttributedString = NSMutableAttributedString(string: "Sample Screening Pie")

            self.pChartViewA.centerAttributedText = centerText

            self.pChartViewA.data = pdata

            self.pChartViewA.chartDescription?.text = "Piechart Demo"              
        })


    } else if sender.selectedSegmentIndex == 1 {
        UIView.animate(withDuration: 0.5, animations: {
            self.pChartViewA.alpha = 0
            self.pChartViewB.alpha = 1
            self.pChartViewC.alpha = 0
            self.pChartViewD.alpha = 0
        })
    }
    else if sender.selectedSegmentIndex == 2 {
        UIView.animate(withDuration: 0.5, animations: {
            self.pChartViewA.alpha = 0
            self.pChartViewB.alpha = 0
            self.pChartViewC.alpha = 1
            self.pChartViewD.alpha = 0
        })
    }
    else if sender.selectedSegmentIndex == 3 {
        UIView.animate(withDuration: 0.5, animations: {
            self.pChartViewA.alpha = 0
            self.pChartViewB.alpha = 0
            self.pChartViewC.alpha = 0
            self.pChartViewD.alpha = 1
        })
    }


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



} 

Заранее спасибо.

0 ответов

Другие вопросы по тегам