- Charts
-
界面展示
界面展示.png
1. 使用pod將Charts導入項目中
2. 步驟
(1)新建視圖
- 在故事版中拖入1個ViewController視圖
- 在新視圖中拖入2個View,垂直排布平分整個視圖
-
選中其中一個View并之設置為BarChartView格带,另一個View為PieChartView
BarChartView.png
PieChartView.png
備注
:設置View為BarChartView何PieChartView時沐序,找不到BarChartView和PieChartView受葛,原因可能是Charts導入項目后需要重新編譯項目三幻。
(2)創(chuàng)建視圖對應的控制器MyChartViewController.swift
(3)視圖和控制器綁定,并在控制器中添加視圖中兩個view控件的引用
添加控件的引用成功.png
2. 具體實現(xiàn)
(1)MyChartViewController.swift
//
// MyChartViewController.swift
// JackUChat
//
// Created by 徐云 on 2019/1/16.
// Copyright ? 2019 Liy. All rights reserved.
//
import UIKit
import Charts
class MyChartViewController: UIViewController {
@IBOutlet weak var barChartView: BarChartView!
@IBOutlet weak var pieChartView: PieChartView!
var months:[String]!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
let percents = [20.0,18.0,25.0,19.0,16.0,20.0,17.0,17.0,15.0,21.0,20.0,13.0]
setBarChart(dataPoints: months, values: percents)
setPieChart(dataPoints: months, values: percents)
}
func setBarChart(dataPoints:[String],values:[Double]) {
//barChartView.noDataText = "該處顯示無數(shù)據(jù)時的顯示文字,不設置則顯示默認信息"
var dataEntries:[BarChartDataEntry] = []
for i in 0..<dataPoints.count {
let dataEntry = BarChartDataEntry(x: values[i], y: Double(i))
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold")
let chartData = BarChartData(dataSet: chartDataSet)
barChartView.data = chartData
}
func setPieChart(dataPoints:[String],values:[Double]) {
var dataEntries:[PieChartDataEntry] = []
for i in 0..<dataPoints.count {
let dataEntry = PieChartDataEntry(value: values[i], label: months[i])
dataEntries.append(dataEntry)
}
let chartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold")
let chartData = PieChartData(dataSet: chartDataSet)
pieChartView.data = chartData
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
備注
:自定義charts圖表樣式可參考使用Charts實現(xiàn)圖表-進階