问题情景的引入:在一个画板程序中,我定义只能用一个手指的时候,才可以画线,当有两个手指的时候是不可以进行绘画的。
问题初解决:
①那么最简单的我们会想到,禁止多点触摸不就可以了吗?
答:不行。假如我们禁止了多点触摸,那么当我们两个手指一起触摸的时候,触摸事件的委托方法
- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event
就会随机选一个触摸返回。也就是说始终是会返回一个触摸( touches. count = 1 ),那么照样还是可以进行画线。
②那么我们运行多点触摸,然后在触摸事件的委托方法中,判断触摸点的个数(touches.count),当只有 touches.count == 1 的时候,我们才允许画线不就可以了吗?
答:只有当两个手指同时进行触摸的时候,才可以。为什么呢?
首先,我们两个手指很有可能是一先一后触摸到屏幕的,
我们分析一下这个先后触摸的过程:当第一个手指触摸屏幕的时候,- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event 的委托方法会响应一次,这个时候的触摸个数为 1;
当第二个手指触摸屏幕的时候,- (void