使用BalloonMarker 的注意点

使用BalloonMarker 的注意点_第1张图片
![Uploading Snip20171027_5_914744.png . . .]

官方Demo中BalloonMarker 是swift中写,而我的项目中是用OC 写的,所以就得混编了,混编的 swift 其实全部都在一个不可见的 h 文件里面,你只需要 #import "你项目的名字-swift.h"这个文件就可以了,所有混编的 swift 都会在这里声明,不过你需要先编译一次才会在里面可以找到。
但得注意了,但如果你的项目中之前没有混编过swift ,pod的不算,那么如果你直接把BalloonMarker 文件直接拖进去项目,虽然编译器也会创建桥接文件,但编译器是不会默认自动创建-swift.h,你是无法引用BalloonMarker的这种swift文件,
可以检查你的项目是否自动了swift文件 ,在build Settings 搜索header name 中结果中看到在Swift Complier -General 中看到 -Swift.h 文件说明你的项目已经创建

使用BalloonMarker 的注意点_第2张图片
Snip20171027_5.png

如果没有这个文件,那么你可以这样做:
1.创建一个新的文件Swift.swift

使用BalloonMarker 的注意点_第3张图片
20161102150312661.jpeg
使用BalloonMarker 的注意点_第4张图片
20161102150747684.jpeg

2.确认后会选择保存路径,点击Create Bridging Header,出现如下界面


使用BalloonMarker 的注意点_第5张图片
20161102150841357.jpeg

3.这样就会生成bridging header 文件


使用BalloonMarker 的注意点_第6张图片
20161102151017413-2.jpeg

4.这样编译器就会自动创建-swift.h,你就可以在在你要是使用的文件导入-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.在下面的方法传数据进去

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.在这个方法里面获取得到自己传入的数据,设置文字的显示

 open override func refreshContent(entry: ChartDataEntry, highlight: Highlight)
    {
        let data = entry.data as? Dictionary
        let yStr = data?["yStr"]
        let dateStr = data?["date"]
        setLabel(String("\(dateStr!)  \(yStr!)"))
    }

8.只要用点心,慢慢调就能调出来你想要的漂亮的图,charts是很强大的

使用BalloonMarker 的注意点_第7张图片
23.gif

你可能感兴趣的:(使用BalloonMarker 的注意点)