博客好久没更新,今天心血来潮,把最近撸的一套k线分享出来,除了缩放有些抖动外,其他操作都非常流畅,如果用得着不妨试试。
k线效果 demo界面
demo下载地址 有什么问题,可以在下面留言
功能需求
- 蜡烛图,指标图
- 双击横屏切换
- 界面缩放
- 长按显示十字线,查看指标
实现思路
- UIScrollView 作为最底层容器,保证滑动的流畅性
- 使用 贝塞尔曲线 和 CAShapeLayer 撸k线
- 使用TALib框架计算ma,kdj,macd等这些指标
- 只绘制屏宽的k线,确保k线显示的比例和减少性能损耗
- 监听UIScrollView的滚动,滑动超过一个蜡烛图宽是,更新k线界面
类结构图
类结构图代码细节
* k线只需获取:高、开、低、收、量五个数据,其他数据均由TALib
框架,在本地计算
- k线类,均遵循
Cocoa_ChartProtocol
协议 - 代码实现逻辑,基本均遵循此思路
//外部调用 - (void)refreshChartView; // 蜡烛图为核心界面,所有界面,均由它带动 /** 计算屏幕可显示蜡烛图个数 */ [self initCurrentDisplayModels]; /** 计算当前最大值,最小值 */ [self calcuteMaxAndMinValue]; /** 绘制k线 */ [self drawCandleSublayers]; /** 绘制均线 */ [self drawMaSublayers];
代码的具体实现看上面demo,现在线上两个APP在用它,项目中的一些改动可能没有更新到demo中,有问题朋友可以在下面留言哦!!!
网友评论