iOS圖表庫Charts使用(不常見但很實(shí)用的屬性)
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供尋烏企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為尋烏眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
至于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ù)更新。。。。
因?yàn)檫@個(gè)charts庫是用swift寫的,但是還是很強(qiáng)大的,一般的功能幾乎都可以實(shí)現(xiàn),不過用起來有些地方還是不是很好找,原諒我的英語水平啦。。。。我根據(jù)平時(shí)用的簡單描述下oc怎樣使用charts。
首先集成,建議用pod 這樣可以減少一些不必要的麻煩,pod 'Charts'
但是在podfile文件里面集成swift庫的時(shí)候要用use_frameworks!
(use_frameworks!選項(xiàng)是告訴 CocoaPods 使用 framework 而不是靜態(tài)庫。這在 Swift 項(xiàng)目中是必選。
我們添加的那行(pod 'Charts')是讓 CocoaPods 知道我們要用 Charts。)
然后創(chuàng)建橋接oc-swift橋接文件
創(chuàng)建橋接文件,隨便創(chuàng)建一個(gè)swift文件即可,xcode會(huì)給你自動(dòng)生成一個(gè),然后在橋接文件里導(dǎo)入@import Charts;
即可,那邊需要用到charts就將橋接文件導(dǎo)入即可
然后。。。重點(diǎn)來了
swift language version 一定要調(diào)成xcode對應(yīng)的最高版本,如果不設(shè)置會(huì)報(bào)錯(cuò)的,然后你如果用pod 又導(dǎo)入別的框架的話charts又會(huì)報(bào)錯(cuò),跑不起來了,我我發(fā)現(xiàn)只要pod install以后,之前對charts做的一些修改配置就會(huì)沒了,每次都得重新設(shè)置一下,這點(diǎn)困惑了我好長時(shí)間。。。。關(guān)于配置網(wǎng)上有好多教程。基本配置搞完了。。。。。。(我發(fā)現(xiàn)只要pod install以后,之前對charts做的一些修改配置就會(huì)沒了,每次都得重新設(shè)置一下)。
關(guān)于柱狀圖的使用
這個(gè)是設(shè)置y軸顯示單位的需要設(shè)置IChartAxisValueFormatter代理
想設(shè)置一個(gè)x坐標(biāo)對應(yīng)多個(gè)柱狀圖的話
想要圖表可以左右滑動(dòng)
好了,這是暫時(shí)我覺得有用的東西,后期還會(huì)繼續(xù)更新的。。。。。。。歡迎點(diǎn)贊。
接著,我們添加函數(shù)庫到項(xiàng)目中。你可以用 CocoaPods 安裝該庫,這里我們直接手動(dòng)安裝。
下載 ios-charts 項(xiàng)目,這個(gè) zip 文件包含了函數(shù)庫(名為 Charts 的文件夾)和一個(gè)示例項(xiàng)目(名為 ChartsDemo)。如果你想了解更多關(guān)于函數(shù)庫的知識,示例項(xiàng)目是很棒的資源。
解壓縮已下載的文件,并將 Charts 文件復(fù)制粘貼到你項(xiàng)目(iOSChartsDemo)的根目錄下。在 Finder 中打開Charts文件,并將 Charts.xcodeproj 拖拽到 Xcode 項(xiàng)目中。結(jié)構(gòu)如下圖所示。
接著從項(xiàng)目導(dǎo)航中選擇你的項(xiàng)目,并確保該 iOSChartsDemo 目標(biāo)被選中。在右邊的常規(guī)選項(xiàng)卡中找到 Embedded Binaries 部分,點(diǎn)擊該部分的+號添加圖表框架。從列表中選擇 Charts.framework 并點(diǎn)擊 Add。
如果你想在 Objective-C 中使用函數(shù)庫,請參考使用說明。
用 Command-B 或選擇 Product Build 來生成項(xiàng)目。如果不這樣做,當(dāng)你導(dǎo)入 Charts 框架到你的項(xiàng)目時(shí),Xcode 會(huì)報(bào)錯(cuò)——無法加載 Charts 底層模塊。
現(xiàn)在開始創(chuàng)建第一個(gè)圖表。
創(chuàng)建一個(gè)柱形圖
打開 BarChartViewController.swift 文件,添加以下聲明。
import Charts
打開故事板文件。我們需要添加用來顯示圖表的視圖。從文檔綱要中選擇 Bar Chart View Controller,并在屬性檢查器中取消 Extend Edges 的 Under Top Barsin 選項(xiàng)。我們不希望圖表自動(dòng)延伸至導(dǎo)航欄下方。
接著拖拽一個(gè)視圖到 Bar Chart View Controller 中,并按下圖定位邊界。該視圖為控制器中主視圖的子視圖。
視圖被選中后,在識別檢查器中將它的類設(shè)為 BarChartView。再使用助理編輯器,加入視圖的 outlet 到 BarChartViewController 類,并命名為 outletbarChartView。在 BarChartViewController 類中添加下列代碼。
@IBOutlet weak var barChartView: BarChartView!
運(yùn)行項(xiàng)目,并從表格中選擇柱形圖,你可能會(huì)得到視圖提示信息:無可用的圖表數(shù)據(jù)。
我所用到的最好的 iOS 圖表庫有兩個(gè)一個(gè)是 Swift 版本的 Charts 不過混編起來有點(diǎn)操蛋.另外一個(gè)就是國人寫的AAChartKit ,幾乎支持所有主流類型(柱狀圖?、條形圖?、折線圖?、曲線圖?、折線填充圖?、曲線填充圖、雷達(dá)圖、極地圖、扇形圖、氣泡圖)的數(shù)據(jù)圖表,配置也非常簡單.
在此附上 AAChartKit 鏈接地址 網(wǎng)頁鏈接,?下面是他的官方介紹
環(huán)境友好,兼容性強(qiáng). 適配?iOS 6 +, 支持ARC,支持?Objective-C語言,配置簡單.同時(shí)更有 Swift 版本AAInfographics可供使用.
功能強(qiáng)大,類型多樣. 支持柱狀圖?、條形圖?、折線圖?、曲線圖?、折線填充圖?、曲線填充圖、雷達(dá)圖、極地圖、扇形圖、氣泡圖、散點(diǎn)圖、區(qū)域范圍圖、柱形范圍圖、面積范圍圖、面積范圍均線圖、直方折線圖、直方折線填充圖、箱線圖、瀑布圖、熱力圖、桑基圖、金字塔圖、漏斗圖、等二十幾種類型的圖形,不可謂之不多.
交互式圖形動(dòng)畫. 有著清晰和充滿細(xì)節(jié)的用戶交互方式,與此同時(shí),圖形渲染動(dòng)畫效果細(xì)膩精致,流暢優(yōu)美.有三十多種以上渲染動(dòng)畫效果可供選擇,用戶可自由設(shè)置渲染圖形時(shí)的動(dòng)畫時(shí)間和動(dòng)畫類型,關(guān)于圖形渲染動(dòng)畫類型,具體參見?AAChartKit 動(dòng)畫類型.
支持手勢縮放.支持圖表的手勢縮放和拖動(dòng)閱覽,手勢縮放類型具體參見?AAChartKit 手勢縮放類型,默認(rèn)禁用手勢縮放功能.
極簡主義.?AAChartView + AAChartModel = Chart,在?AAChartKit?圖表框架當(dāng)中,遵循這樣一個(gè)極簡主義公式:圖表視圖控件 + 圖表模型 = 你想要的圖表.同另一款強(qiáng)大而又精美的圖表庫AAInfographics完全一致.
鏈?zhǔn)骄幊陶Z法. 支持類?Masonry?鏈?zhǔn)骄幊陶Z法,一行代碼即可配置完成?AAChartModel模型對象實(shí)例.
網(wǎng)頁題目:ios開發(fā)圖表,ios繪制曲線圖
新聞來源:http://vcdvsql.cn/article40/dsdiiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、微信小程序、微信公眾號、網(wǎng)站改版、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)