★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10211126.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何创建一个饼形图表,并导出图表为PNG图片。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Charts' 7 end
根据配置文件中的相关配置,安装第三方库。
然后点击打开【DemoApp.xcworkspace】项目文件。
为了更好的显示柱形图标需要调整模拟器的朝向。
【DemoApp】->【General】
->【Device Orientation】取消勾选【Portrait】肖像选项,使模拟器保持横向显示。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,创建一个饼形图表并导出图表为PNG图片。
1 import UIKit 2 //首先在当前的类文件中,引入已经安装的第三方类库 3 import Charts 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //创建一个图表数据记录类型的数组 12 var entries1: [ChartDataEntry] = Array() 13 14 //然后往数组中,依次添加四条数据。 15 //分别表示环形图表各区域的比例。 16 entries1.append(ChartDataEntry(x: 1, y: 4.0)) 17 entries1.append(ChartDataEntry(x: 2, y: 6.0)) 18 entries1.append(ChartDataEntry(x: 3, y: 8.0)) 19 entries1.append(ChartDataEntry(x: 4, y: 12.0)) 20 21 //创建一个饼形数据集,并设置数据集的值域和标签文字 22 let dataSet1 = PieChartDataSet(values: entries1, label: "Company A") 23 //由于饼形图表分为4部分,这里依次设置这四个部分的填充颜色。 24 dataSet1.colors = [NSUIColor.red, NSUIColor.black, NSUIColor.brown, NSUIColor.orange] 25 26 //创建一个指定显示区域的饼形图表视图 27 let chart = PieChartView(frame: CGRect(x: 0, y: 10, 560, height: 280)) 28 //设置图表视图的背景颜色为无色 29 chart.backgroundColor = NSUIColor.clear 30 //设置饼形图表所显示的数据内容 31 chart.data = PieChartData(dataSet: dataSet1) 32 //在饼形图表的中心位置,添加一个文字标签。并设置文字的内容。 33 chart.centerText = "Revenue Report" 34 //设置图表的描述信息 35 chart.chartDescription?.text = "Strengthen" 36 37 //初始化一个字符串,表示图表导出成图片之后的存储位置 38 let imagePath = NSHomeDirectory() + "/Documents/chart.png" 39 //调用图表的存储方法,并设置图片的格式和压缩程度, 40 //图片将被保存到沙箱中的指定的文档目录。 41 if(chart.save(to: imagePath, //图片路径 42 format: ChartViewBase.ImageFormat.png,//图片的格 43 compressionQuality: 1.0))//压缩程度 44 { 45 //同时在控制台输出图片的日志信息 46 print(imagePath); 47 } 48 49 //将配置好的图表添加到根视图中 50 self.view.addSubview(chart) 51 } 52 53 override func didReceiveMemoryWarning() { 54 super.didReceiveMemoryWarning() 55 // Dispose of any resources that can be recreated. 56 } 57 }
从控制台复制输出的图片路径。找到该图片,按下键盘上的空格键,预览该图片。