
官方Demo中BalloonMarker 是swift中寫,而我的項目中是用OC 寫的,所以就得混編了,混編的 swift 其實全部都在一個不可見的 h 文件里面,你只需要 #import "你項目的名字-swift.h"這個文件就可以了,所有混編的 swift 都會在這里聲明,不過你需要先編譯一次才會在里面可以找到。
但得注意了,但如果你的項目中之前沒有混編過swift ,pod的不算,那么如果你直接把BalloonMarker 文件直接拖進(jìn)去項目,雖然編譯器也會創(chuàng)建橋接文件,但編譯器是不會默認(rèn)自動創(chuàng)建-swift.h,你是無法引用BalloonMarker的這種swift文件,
可以檢查你的項目是否自動了swift文件 ,在build Settings 搜索header name 中結(jié)果中看到在Swift Complier -General 中看到 -Swift.h 文件說明你的項目已經(jīng)創(chuàng)建

如果沒有這個文件,那么你可以這樣做:
1.創(chuàng)建一個新的文件Swift.swift


2.確認(rèn)后會選擇保存路徑,點擊Create Bridging Header,出現(xiàn)如下界面

3.這樣就會生成bridging header 文件

4.這樣編譯器就會自動創(chuàng)建-swift.h,你就可以在在你要是使用的文件導(dǎo)入-swift.h 文件,就可以使用BalloonMarker
BalloonMarker *marker = [[BalloonMarker alloc]
initWithColor: [UIColor colorWithWhite:0/255. alpha:0.7]
font: [UIFont systemFontOfSize:9.0]
textColor: UIColor.whiteColor
insets: UIEdgeInsetsMake(0, 0, 0, 0)];
marker.chartView = _LineChartView;
marker.arrowSize = CGSizeMake(10, 10);
marker.color = [UIColor colorWithHexString:@"e86258"];
marker.minimumSize = CGSizeMake(80.f, 30.f);
marker.charViewSize = _LineChartView.size;
_LineChartView.marker = marker;
5.就像上面的事例,是下面的方法里面用QuartzCore畫自己所需要的泡泡,
open override func draw(context: CGContext, point: CGPoint)
{
}
6.在下面的方法傳數(shù)據(jù)進(jìn)去
NSMutableDictionary *popupTip = [NSMutableDictionary dictionary];
popupTip[@"date"] = model.billDate;
popupTip[@"yStr"] = [NSString stringWithFormat:@"%ld",yVal];
ChartDataEntry *entry = [[ChartDataEntry alloc] initWithX:i y:yVal data:popupTip];// 傳入data,是字典類型
7.在這個方法里面獲取得到自己傳入的數(shù)據(jù),設(shè)置文字的顯示
open override func refreshContent(entry: ChartDataEntry, highlight: Highlight)
{
let data = entry.data as? Dictionary<String, String>
let yStr = data?["yStr"]
let dateStr = data?["date"]
setLabel(String("\(dateStr!) \(yStr!)"))
}
8.只要用點心,慢慢調(diào)就能調(diào)出來你想要的漂亮的圖,charts是很強大的
