最近由于项目需要,接触了股票的分时图和K线图,K线图网上的资源很多也很完善,但是分时图相对文章写得比较模糊或者和需求不太相符,所以我写了一个分时图来实现最基本的功能。现在项目告一段落,记录下来,如果有需要的话可以下载,地址在下面。
https://github.com/NSLoger/GGTimeLineView
话不多说,先看一下效果
这里我是分为上下两个模块来实现的,上面分别画出时间段和最高最低价格,并且画出分时的折线,而地下注明当时时间的成交量。
首先我介绍下分时图中的各属性和方法:
//*必须设置
@property (nonatomic, strong)NSMutableArray<GGTimeLineItem *> * dataArray;
//*必须设置,上部分占高
@property (nonatomic, assign) float upperViewHeight;
//*必须设置,下部分占高
@property (nonatomic, assign) float downViewHeight;
/**
* @brief 画背景图
*必须调用
*/
-(void)drawBgFramework;
/**
* @brief 数据入口
*/
-(void)setDataArray:(NSMutableArray<GGTimeLineItem *> *)dataArray;
/**
* @brief 单独添加数据入口
*/
-(void)addNewItem:(GGTimeLineItem *)item;
/**
* @brief 移除所有图层
*/
-(void)removeAllLayer;
*dataArray是分时图的在每个时间段的分时数据,里面是数据模型GGTimeLineItem,这个模型可以自定义,我一同附在了下载项目中。
---在GGTimeLineItem中有一点需要注意,那就是股票在11:30~13:00这个时间段是休盘的时间,需要对时间做处理,否则会出现数据偏差等情况。如果后台对时间未做处理,那么不需要改动模型中CurrentTime这个属性,如果后台已经做处理,在.m文件中将CurrentTime这个属性前对时间的计算处理注释掉就可以了。
- upperViewHeight是显示折线图的上半部分的高度
- downViewHeight是显示当前分钟交易量的下半部分的高度
- drawBgFramework方法是画背景上显示的时间和最高最低价
具体的用法为
timeLineView = [[GGTimeLineView alloc] initWithFrame:APP_CGRectMake(0, 0, 262, 250)];
timeLineView.upperViewHeight = APP_Origin_Y(206);
timeLineView.downViewHeight = APP_Origin_Y(44);
[timeLineView drawBgFramework];
[self.view addSubview:timeLineView];
比较简陋,为大家做个参考。如有什么问题,可以相互讨论。