iphone下的圖形框架並不是很多。其中比較知名的就兩個s7graphview和core plot。巧的是兩個都是google的。前者使用簡單,但功能單一,只能畫曲線圖。後者是開源專案,專案仍在不斷更新中,用起來可就複雜多了,而且各個版本會有差異,包括屬性、方法,甚至是類名都有改變。
但時間真的是太老了,居然是09年5月發表的,原文很多地方已經不再適用。因此我費了好大的勁,才把原文中的**跑通了,不敢獨享,與各位共享之。
hg clone core-plot
截至本文發表時止,core plot已經提供了mac標準安裝器 coreplotinstaller_0.2.2.zip , 你可以直接用安裝器安裝,可以很方便地把core plot直接以sdk的方式安裝到本機。sdk的使用方法見後一篇博文《core plot sdk的用法》。
二、如何在專案中使用core plot
由於ios的限制,core plot以靜態庫的形式鏈結到iphone應用。在core-plot/framework目錄下存在coreplot-cocoatouch.xcodeproj檔案,這就是乙個靜態庫專案。關於靜態庫的使用,前一篇博文《封裝自己的控制項庫:iphone靜態庫的應用》已經有介紹,使用方法都是一樣的。
2、使用add->existing files…,把coreplot-cocoatouch.xcodeproj新增到新專案中。
3、把libcoreplot-cocoatouch.a最右邊的「add to target」小框勾上。
4、選擇target 「info->general」,新增對專案coreplot-cocoatouch的依賴(引用)。
5、選擇新專案的「info->build」,在「header search paths」中新增core plot標頭檔案搜尋路徑,如:/users/kmyhy/core-plot/framework。注意要選中「recursive」小勾(英文原文中沒有提這一點)。同時,在other linker flags中要增加兩個選項:-objc和-all_load(英文原文中遺漏了第2個選項)。
6、新建乙個viewcontroller,如testviewcontroller。在本例中,我們勾選了「with xib」選項。在英文原文中,要求在inte***ce build中把xib的view物件由uiview改為cplayerhostingview(其實應當是cpgraphhostingview)。但在這裡,其實沒有必要,只需在源**中修改就可以了。
7、.h檔案:
#import
#import "coreplot-cocoatouch.h"
@inte***ce testviewcontroller : uiviewcontroller
@end
8、.m檔案:
#import "testviewcontroller.h"
@implementation testviewcontroller
-( nsuinteger )numberofrecordsforplot:( cpplot *)plot
-( nsnumber *)numberforplot:( cpplot *)plot field:( nsuinteger )fieldenum recordindex:(nsuinteger )index
else
else}}
- ( void )viewdidload
- ( void )dealloc
@end
仔細檢視**,你會發現原文中的**被我做了一些修改和調整。
附一張core plot框架的類層次圖,便於理解**中各個物件的使用:
注意,右邊各個類的顏色和左邊各個層次的顏色是對應的。
開源框架Core Plot的使用
iphone下的圖形框架並不是很多。其中比較知名的就兩個s7graphview和core plot。巧的是兩個都是google的。前者使用簡單,但功能單一,只能畫曲線圖。後者是開源專案,專案仍在不斷更新中,用起來可就複雜多了,而且各個版本會有差異,包括屬性 方法,甚至是類名都有改變。但時間真的是太老...
開源框架ImageLoader的使用
override public void oncreate public class imagemanager public static void load string imgurl,imageview imageview,displayimageoptions o showstubimage ...
開源框架VTMagic的使用介紹
vtmagic 特性概要 更多特性請參見vtmagicview.h檔案。預覽圖使用 vtmagic支援cocoapods,只需在podfile檔案中新增如下 即可 1 pod vtmagic 整合 關於vtmagic的整合方法主要有以下兩種 1.直接例項化vtmagiccontroller物件,然後...