前言
由于项目需要用到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,暂时供参考思路,稍后可能重构加注释之类的吧
DEMO