先上代码
https://download.csdn.net/download/u010891561/10760737
再上效果图:
说明
这篇主要写到分时图主图与幅图的图形绘制,绘制层的UIView用Category的方式将模块拆分编写,当然也可以用其他的方法来功能。
个人建议可以不看代码自己一步一步写分时图,这里提供一下我的思路:
1.创建一个View,将主图与幅图的层高比例定义好;
2.设计分时图规则,横向需要显示多少根线,竖向需要显示多少根线,只有定义好才能进行下一步计算。
3.获取当前交易数据 最高收盘价|最低收盘价 、最高成交量|最低成交量、最高持仓量|最低持仓量
4.将横线与价格的位置匹配好,并绘制。
5.将竖线的位置及时间匹配好,并绘制。(PS:为什么要先横竖线及时间/价格的原因是分时图的交易数据线需要在这些线的上面)
6.根绝收盘价计算每个点的位置,并绘制。(PS:这里其实是最简单的,因为前面基础工作已经完成,这里只需要计算点的x,y位置,然后将每一个x,y进行连接并表明颜色大小即可)
7.根据成交量计算每个点的位置。(成交量是一根线,只是绘制方式有点不一样,计算方式如上)
8.根据持仓量计算每个点的位置。
9.添加长按手势,根据手势所在x轴位置得到index,根据index拿到Array中的数据并显示在浮层中即可。
如上介绍只是大致思路,欢迎私聊交流。