iOS圖表庫Charts使用(不常見但很實(shí)用的屬性)
至于Charts的普通demo方法請參見其它文章,本文主要講述Charts不常見但很實(shí)用的屬性。(關(guān)于集成的方法參見我的上一篇文章:iOS圖表庫Charts集成與使用)
普通demo文章:iOS在OC項(xiàng)目中集成Charts繪制圖表框架 這個(gè)是王雷大神的博客,對charts講解很詳細(xì)
OC調(diào)用Charts繪制圖表--BarChartView
這個(gè)是李大寶(群主)的博客對于chart的理解,個(gè)人認(rèn)為他是個(gè)逗逼,??加入他的chart群交流,群號:539641834
所謂天下文章一般抄,百度出來的chart文章大部分都雷同。
好,開始不一樣的講解:
由于老板是個(gè)老者(今年50,60歲了),從事java多年,指導(dǎo)我們需求這一塊,
1.交互柱狀圖時(shí),只讓用戶左右滑動(dòng),不縮放,
解析:由于chart官網(wǎng)以及上面大神的demo都是默認(rèn)先縮放后才可以滑動(dòng),這就出現(xiàn)了困難,經(jīng)過幾番查找,發(fā)現(xiàn)只要在創(chuàng)建圖表時(shí)就設(shè)置縮放的比例,這樣用戶交互時(shí),就不用先放大后才可以滑動(dòng),從而解決需求,當(dāng)然x,y軸的手勢啟動(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)畫效果,可以設(shè)置X軸和Y軸的動(dòng)畫效果
[_barChartView animateWithYAxisDuration:0.25f];
2.當(dāng)x軸每一個(gè)單元數(shù)據(jù)太長(比如說學(xué)生的名字太長),就會(huì)形成太擁擠的現(xiàn)象

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

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

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