项目需求:检查相应的触屏动作、对一些滑动触屏动作绘画出移动轨迹(单指或多指)
1,检查触屏动作
处理监测多手指具体动作的方式大致有两种,一种是touchesBegan、touchesMoved、touchesEnded三兄弟函数自己监听判断,再一种就是利用系统已经封装好的各类UIGestureRecognizer就可以有针对性检验出来。
我这里是用UIGestureRecognizer实现的,这个很简单,网络上有很多
2,画手指移动轨迹
不废话直接上代码
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)event{
for(UITouch *touchx in event.allTouches) {
CGPoint location = [touchx locationInView:self];
CGPoint pastLocation = [touchx previousLocationInView:self];
CGContextRef layerContext = CGLayerGetContext(layer);
CGContextBeginPath(layerContext);
CGContextMoveToPoint(layerContext, pastLocation.x, pastLocation.y);
CGContextAddLineToPoint(layerContext, location.x, location.y);
CGContextStrokePath(layerContext);
}
[self setNeedsDisplay];
}
一根手指一个UItouch对象
首先判断屏幕上有几根手指的,是event.allTouches的数量。原因是在手指点击到屏幕、移动、再到离开屏幕,touches中数量只有一个UItouch对象,但是整个事件event包含所有的UItouch对象。
记录,有相同需要也可以看看~~
网友评论