Swift - 第三方图表库Charts使用详解24(饼状图3:自动选中最大值)
作者:hangge | 2018-12-28 08:10
之前我写过文章介绍如何使用第三方图表库 Charts 实现饼状图:
默认情况下当我们点击选中某个扇区时,这个扇区会自动伸出(见下图)。有网友问:如何让饼状图默认就自动选中最大值(该扇区默认就是伸出状态),下面通过样例演示这个功能如何实现。
1,默认选中最大值
(1)样例代码
import UIKit import Charts class ViewController: UIViewController { //饼状图 var chartView: PieChartView! override func viewDidLoad() { super.viewDidLoad() //创建饼图组件对象 chartView = PieChartView() chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40, height: 260) self.view.addSubview(chartView) //生成5条随机数据 let dataEntries = (0..<5).map { (i) -> PieChartDataEntry in return PieChartDataEntry(value: Double(arc4random_uniform(50) + 10), label: "数据\(i)") } let chartDataSet = PieChartDataSet(values: dataEntries, label: "数据分布") //设置颜色 chartDataSet.colors = ChartColorTemplates.vordiplom() + ChartColorTemplates.joyful() + ChartColorTemplates.colorful() + ChartColorTemplates.liberty() + ChartColorTemplates.pastel() let chartData = PieChartData(dataSet: chartDataSet) //设置饼状图数据 chartView.data = chartData //找到最大扇区的索引 var selectIndex = 0 for i in 1..<dataEntries.count { if dataEntries[i].value > dataEntries[selectIndex].value { selectIndex = i } } //选中最大扇区 let highlight = Highlight(x: Double(selectIndex), dataSetIndex: 0, stackIndex: 0) chartView.highlightValue(highlight) } }
(2)运行效果如下。可以看到程序启动后,饼状图中最大的那个扇区会自动被选中,并伸长。
2,同时选中多个扇区
(1)我们也可以使用 highlightValues() 方法来传入个数组,实现同时选中多个扇区。
//选中第2、4个扇区 let highlight1 = Highlight(x: 1, dataSetIndex: 0, stackIndex: 0) let highlight2 = Highlight(x: 3, dataSetIndex: 0, stackIndex: 0) chartView.highlightValues([highlight1, highlight2])
(2)运行效果如下:
全部评论(0)