1. 程式人生 > >[Swift通天遁地]三、手勢與圖表-(7)建立餅形圖表並匯出圖表為PNG圖片

[Swift通天遁地]三、手勢與圖表-(7)建立餅形圖表並匯出圖表為PNG圖片

本文將演示如何建立一個餅形圖表,並匯出圖表為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, width: 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 }

從控制檯複製輸出的圖片路徑。找到該圖片,按下鍵盤上的空格鍵,預覽該圖片。