最近在研究可用的第三方的圖示控件,然後網上搜了之後,感覺功能比較強大的就是coreplot了,于是就開始研究如何部署到程式中。網上關于這方面的教程比較少,大部分都是objective-c的,而且曆史也比較久遠,後來找到一篇老外寫的blog,講述在swift中如何使用coreplot(http://blog.alwold.com/2014/08/07/using-coreplot-with-swift-in-ios/),研究了好久,總算成功安裝了。下面就一步一步介紹。
首先建立一個簡單的swift工程,工程名字為coreplot,記住選擇language為swift。這裡就不再截圖詳細說明了,不清楚的同學可以看我的上一篇blog
這裡我重點說一下如何安裝cocoapods把,因為安裝過程耗費了我好久,而且中間有不少點也鮮有提起。
這裡有兩篇中文的blog比較不錯,都由可取之處,供大家了解cocoapods是什麼。
cocoapods詳解之--使用篇 http://blog.csdn.net/wzzvictory/article/details/18737437
cocoapods安裝和使用教程 http://code4app.com/article/cocoapods-install-usage
關于cocoapods是什麼和它的強大我就不多說了,兩篇blog都有介紹,我重點說一下我的安裝過程。
打開終端,依次輸入下面的指令
這樣是為了通路taobao的ruby鏡像,因為gfw,在國内沒法直接通路cocoapods,是以需要把我們的source設定成taobao的一個鏡像網站。注意區分https和http
為了驗證ruby鏡像 可以輸入
注意是字母 hijk l mn 的l,不是數字1
接下來會顯示
注意,這裡面一定隻能有一條,如果你的裡面仍然有rubygems.org說明沒有remove成功,重新試一下上面的指令。
輸入下面的指令就開始安裝cocoapods
注意,這裡輸入完成之後,可能需要等一段時間才能開始下載下傳和安裝,我當時是等了大概有3分鐘才安裝完成。
安裝執行過程中,會問我嗎是不是要更新rake,輸入y
安裝程序結束之後,執行指令
這裡有得等2,3分鐘的的樣子
如果這中間都沒有報錯,就說明你安裝成功了。
可以試一下看看我們待會要安裝的coreplot:
大緻會告訴你這樣的資訊
可以看到最新的coreplot是1.5.1版本的,也可以看到在github上的源位址。
到這裡,cocoapods就安裝完成了,接下來我們繼續我們的步驟
在終端中 cd到你的swift工程所在的目錄,然後執行下面的指令
如果一切正常,在你的工程目錄下,會出現一個檔案名字叫做podfile,這個相當于cocoapods的配置檔案,告訴我們在工程中将引入哪些第三方的控件。
接下來是很重要的一個步驟,用vim或者xcode打開并編輯podfile檔案,一定不要直接輕按兩下檔案打開并編輯,我就是在這上面吃了虧了,搞了好久好久一直提示出錯,因為你的textedit會改變原有的一些你肉眼看不出的格式等等。
執行下面的指令用xcode打開并修改podfile
這裡是我修改後的檔案:
可以看到在target coreplot,就是我們一開始建立的工程下面,我們加入了pod coreplot和相應的版本号。
儲存并關閉podfile
在終端執行指令:
又是得耐心地等待一段時間後,會得到下面的結果:
表示我們的coreplot已經安裝完成了。
注意最後一行字:
回頭看一下我們的工程目錄,你會發現建立了不少東西,其中有一個叫xxx.xcworkspace
的檔案,就是以後我們再打開工程時直接輕按兩下的檔案了。
我們輕按兩下打開工程。
利用我上一篇blog介紹的方法建立xxx-bridging-header.h 檔案。
就是在我們的工程目錄中create一個新的class并選擇用objective-c做位語言,這樣xcode會自動幫我們建立橋接頭檔案,不需要我們手動做操作。
在剛建好的coreplot-bridging-header.h檔案中添加:
打開storyboard,然後在viewcontroller中再添加進來一個view,這個view将作為我們的coreplot控件的承載view,修改這個view的custom class為
cptgraphhostingview
步驟就不畫圖了,在storyboard中assistance editor模式下,ctrl拖拽剛添加的view到viewcontroller.swift檔案中,命名為graphview
我們先編譯一下工程,shift+commond+b,編譯成功之後,可能會有一些警告,我把版本從8.3改成了8.1,因為1.5.1 的coreplot似乎最高支援到8.1
接下來我們在viewdidload方法中添加進下面這些代碼:
添加datasource delegate,在開頭添加代理: cptplotdatasource
編輯代理方法:
整個viewcontroller.swift 看起來是這樣的
接下來就運作一下你的程式,就能看到一個pie被畫在了螢幕上
利用coreplot還能畫柱狀圖、折線圖等等,我也剛開始學,一起研究吧。