天天看點

Charts 常見使用類型執行個體

Charts是做什麼的:

       在我們平時的開發中,當使用到一些統計圖表的時候,我們該怎樣去做那些柱形的統計圖、那些折線統計圖、扇形統計圖,亦或是你在做金融相關的項目那些股票走勢等等的UI我們改怎樣做?上面說的這麼多全都可以用今天我們說的主角——Charts來解決,這次我們說這個就從它的內建開始,再到對它一些簡單的說明,最後用幾個Demo來認識一下這個三方,在最後我也會相應的給出下面幾個Demo的源碼供大家參考。

Charts在git的位址先給大家 來看看它的一個內建:

       Charts是用Swift寫的,這裡我推薦的使用Cocoapods來內建,下面是指令行截圖,當然肯定還有不适用Cocoapods的,下面也有一篇文章的連結,很詳細的說明了手動內建的過程:

Charts 常見使用類型執行個體

要是不使用Cocoapods,你可以在這裡看看這篇文章:   iOS在OC項目中內建Charts繪制圖表架構

讓Charts在你腦海中有這個印象,下面是對它整體的使用的一個類型的說明:

             LineChartView               ----- 折線圖 

             BarChartView                ----- 柱狀圖

             CandleStickChartView  -----  K線圖

             PieChartView                ----- 餅狀圖

             RadarChartView            ----- 雷達圖

一  :折線Demo的運作效果:

Charts 常見使用類型執行個體

上面就是折線圖的運作效果,總結一下折線圖代碼中重要的地方:

1、ChartYAxis 這個類表示的就是Y軸,看字面意思也能了解, Axis就是軸的意思。當然我們說的重點不是這個,是它的執行個體的valueFormatter屬性,看下面:

Charts 常見使用類型執行個體

仔細看看你就看到這個屬性類型,一個遵守了ChartAxisValueFormatter協定的任意類型,以前有一些代碼寫的時候是直接寫一個NSNumberFormatter指派的,應該是以前版本的時候是這樣的,現在這個版本類型改變。

2、初始化方法的改變:

     先看看下面兩句,一個是初始化ChartDataEntry的子類BarChartDataEntry的方法,一個是初始化PieChartDataSet類的方法:

Charts 常見使用類型執行個體

      應該也是版本的問題,在新的版本中我們是找不到上面兩個方法的,也就是 initWithValue: xIndex:  和   initWithYVals: label:  這兩個方法,相應的我們能夠正常使用的是下面這樣:

Charts 常見使用類型執行個體

二:柱狀Demo的效果

Charts 常見使用類型執行個體

柱狀就是BarChartView類型,具體的代碼和注意的東西我加了詳細的注釋在Demo裡面,這裡看看ChartViewDelegate的代理方法:

<code>#pragma mark -- ChartViewDelegate</code>

<code>//點選選中柱形時回調</code>

<code>- (</code><code>void</code><code>)chartValueSelected:(ChartViewBase * _Nonnull)chartView entry:(ChartDataEntry * _Nonnull)entry dataSetIndex:(</code><code>NSInteger</code><code>)dataSetIndex highlight:(ChartHighlight * _Nonnull)highlight{</code>

<code>        </code> 

<code>        </code><code>NSLog</code><code>(@</code><code>""</code><code>);</code>

<code>}</code>

<code>//沒有選中柱形圖時回調,當選中一個柱形圖後,在空白處輕按兩下,就可以取消選擇,此時會回調此方法</code>

<code>- (</code><code>void</code><code>)chartValueNothingSelected:(ChartViewBase * _Nonnull)chartView{</code>

<code>        </code><code>NSLog</code><code>(@</code><code>"---chartValueNothingSelected---"</code><code>);</code>

<code>//放大圖表時回調</code>

<code>- (</code><code>void</code><code>)chartScaled:(ChartViewBase * _Nonnull)chartView scaleX:(CGFloat)scaleX scaleY:(CGFloat)scaleY{</code>

<code>        </code><code>NSLog</code><code>(@</code><code>"---chartScaled---scaleX:%g, scaleY:%g"</code><code>, scaleX, scaleY);</code>

<code>//拖拽圖表時回調</code>

<code>- (</code><code>void</code><code>)chartTranslated:(ChartViewBase * _Nonnull)chartView dX:(CGFloat)dX dY:(CGFloat)dY{</code>

<code>        </code><code>NSLog</code><code>(@</code><code>"---chartTranslated---dX:%g, dY:%g"</code><code>, dX, dY);</code>

三: PieChartView 餅狀圖

       看到這了其實我在練習Demo的時候,感覺和前面那些都差不多一個道理,隻不過就是類型不一樣而已吧,可能裡面還是會涉及到一些具體的屬性差別,下面是餅狀的圖效果:

Charts 常見使用類型執行個體

四:雷達狀Demo的運作效果

Charts 常見使用類型執行個體

本文轉自xsster51CTO部落格,原文連結:http://blog.51cto.com/12945177/1951671 ,如需轉載請自行聯系原作者

下一篇: 什麼是B+Tree