iOS圖表庫(kù)Charts使用(不常見(jiàn)但很實(shí)用的屬性)
至于Charts的普通demo方法請(qǐng)參見(jiàn)其它文章,本文主要講述Charts不常見(jiàn)但很實(shí)用的屬性。(關(guān)于集成的方法參見(jiàn)我的上一篇文章:iOS圖表庫(kù)Charts集成與使用)
普通demo文章:iOS在OC項(xiàng)目中集成Charts繪制圖表框架 這個(gè)是王雷大神的博客,對(duì)charts講解很詳細(xì)
OC調(diào)用Charts繪制圖表--BarChartView
這個(gè)是李大寶(群主)的博客對(duì)于chart的理解,個(gè)人認(rèn)為他是個(gè)逗逼,??加入他的chart群交流,群號(hào):539641834
所謂天下文章一般抄,百度出來(lái)的chart文章大部分都雷同。
好,開(kāi)始不一樣的講解:
由于老板是個(gè)老者(今年50,60歲了),從事java多年,指導(dǎo)我們需求這一塊,
1.交互柱狀圖時(shí),只讓用戶左右滑動(dòng),不縮放,
解析:由于chart官網(wǎng)以及上面大神的demo都是默認(rèn)先縮放后才可以滑動(dòng),這就出現(xiàn)了困難,經(jīng)過(guò)幾番查找,發(fā)現(xiàn)只要在創(chuàng)建圖表時(shí)就設(shè)置縮放的比例,這樣用戶交互時(shí),就不用先放大后才可以滑動(dòng),從而解決需求,當(dāng)然x,y軸的手勢(shì)啟動(dòng)也要相應(yīng)的設(shè)置下。
方法:

// 需求:只滑動(dòng)不縮放:(系統(tǒng)內(nèi)部默認(rèn)是先縮放后滑動(dòng))及初始化時(shí)x軸就縮放1.5倍,就可以滑動(dòng)了,
ChartViewPortHandler *scaleX = _barChartView.viewPortHandler;
[scaleX setMinimumScaleX:1.5f];
//設(shè)置動(dòng)畫(huà)效果,可以設(shè)置X軸和Y軸的動(dòng)畫(huà)效果
[_barChartView animateWithYAxisDuration:0.25f];
2.當(dāng)x軸每一個(gè)單元數(shù)據(jù)太長(zhǎng)(比如說(shuō)學(xué)生的名字太長(zhǎng)),就會(huì)形成太擁擠的現(xiàn)象

解析:可以傾斜顯示x軸每一個(gè)單元數(shù)據(jù),// xAxis.labelRotationAngle = -30;// x軸上名字的旋轉(zhuǎn)角度,仿網(wǎng)頁(yè)上的
但是這樣又會(huì)形成,第一次進(jìn)來(lái)時(shí),學(xué)生名字只顯示一半,向左滑動(dòng)后,才偏移出全部的名字,但是整個(gè)barChartView也會(huì)上移動(dòng),后來(lái)用_barChartView.extraBottomOffset = 15;也解決不了問(wèn)題。
辦法:索性就不用傾斜顯示了,即:
一個(gè)頁(yè)面顯示的數(shù)據(jù)太多了,都不看清楚,怎么樣設(shè)置一個(gè)頁(yè)面顯示固定條數(shù)的數(shù)據(jù),如果數(shù)據(jù)太多需要手動(dòng)滑動(dòng)看到
//設(shè)置一頁(yè)顯示的數(shù)據(jù)條數(shù),超出的數(shù)量需要滑動(dòng)查看:
_barChartView.setVisibleXRangeMaximum(double);//需要在設(shè)置數(shù)據(jù)源后生效(這是一個(gè)坑,懶加載寫(xiě)這個(gè)方法并沒(méi)任何反應(yīng),必須在調(diào)用數(shù)據(jù)后使用才有效果)
我的:

我是在
(// 需求:只滑動(dòng)不縮放:(系統(tǒng)內(nèi)部默認(rèn)是先縮放后滑動(dòng))及初始化時(shí)x軸就縮放1.5倍,就可以滑動(dòng)了,
ChartViewPortHandler *scaleX = _barChartView.viewPortHandler;
[scaleX setMinimumScaleX:1.5f];)
下使用(//? ? ? ? xAxis.labelRotationAngle = -30;// x軸上名字的旋轉(zhuǎn)角度,
xAxis.labelPosition = XAxisLabelPositionBottom;//X軸的顯示位置,默認(rèn)是顯示在上面的)的,每一次進(jìn)來(lái)就這樣:

向左滑動(dòng)后才:

若是有那個(gè)大神知道歡迎告知,我的解決就是沒(méi)用傾斜的方法,直接用了_barChartView.setVisibleXRangeMaximum(double);
其他實(shí)用屬性方法陸續(xù)更新。。。。