撸了一套iOS k线,与君共勉

博客好久没更新,今天心血来潮,把最近撸的一套k线分享出来,除了缩放有些抖动外,其他操作都非常流畅,如果用得着不妨试试。


2262256-d68de7d7ff043fc7.gif
k线效果
2262256-46cb709dd76b7360.png
demo界面

demo下载地址 有什么问题,可以在下面留言

功能需求

  • 蜡烛图,指标图
  • 双击横屏切换
  • 界面缩放
  • 长按显示十字线,查看指标

实现思路

  • UIScrollView 作为最底层容器,保证滑动的流畅性
  • 使用 贝塞尔曲线CAShapeLayer 撸k线
  • 使用TALib框架计算ma,kdj,macd等这些指标
  • 只绘制屏宽的k线,确保k线显示的比例和减少性能损耗
  • 监听UIScrollView的滚动,滑动超过一个蜡烛图宽是,更新k线界面

类结构图

2262256-e39a001e7d0b4a8b.png
类结构图

代码细节

* k线只需获取:高、开、低、收、量五个数据,其他数据均由TALib框架,在本地计算

  • k线类,均遵循 Cocoa_ChartProtocol协议
  • 代码实现逻辑,基本均遵循此思路
    //外部调用
    - (void)refreshChartView;
    
    // 蜡烛图为核心界面,所有界面,均由它带动
    
    /** 计算屏幕可显示蜡烛图个数 */ 
    [self initCurrentDisplayModels];
    
     /** 计算当前最大值,最小值 */ 
     [self calcuteMaxAndMinValue];
     
     /** 绘制k线 */
     [self drawCandleSublayers];
     
     /** 绘制均线 */
     [self drawMaSublayers];
    

代码的具体实现看上面demo,现在线上两个APP在用它,项目中的一些改动可能没有更新到demo中,有问题朋友可以在下面留言哦!!!

展开阅读全文

没有更多推荐了,返回首页