【iOS开发】k线图绘制

1,070 阅读1分钟

前言

由于项目需要用到k线图,但是在网上搜索了很多都不太理想,大概看了一下,理了一下思路决定自己写。这些都是使用最简单的画图写出来的,并没有那么多高深的东西。

k线图简单来说有三点:

  • 画线(背景线,x轴,y轴)
  • 主要内容(k线,分时图折线)
  • 手势(左右滑动手势,放大缩小,长按显示十字线)

一、计算坐标,长按手势UILongPressGestureRecognizer

长按出现数据

二、添加了左右滑动手势

使用以下触摸方法来控制位移

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

首先要计算出手指移动的距离方向,根据距离来确定移动了多少个元素,使用代理方法LSSKLineViewDelegate在vc里进行数据的操作 左右移动

三、这次增加了捏合手势UIPinchGestureRecognizer,捏合手势首先需要注意两指的第一个手指是左边还是右边

  NSUInteger touchCount = ges.numberOfTouches;
//第一个手指坐标
  CGPoint currentOnePoint = [pGesture locationOfTouch: 0 inView:pointView ];
//第二个手指坐标
  CGPoint currentTwoPoint = [pGesture locationOfTouch: 1 inView:pointView ];

捏合手势

终于找到之前的项目了,由于是4年前的项目,整体比较乱,也有一些bug,暂时供参考思路,稍后可能重构加注释之类的吧

LSSCharts