默认情况下-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event它是这样工作的:
- 用食指触摸屏幕
- “touchesBegan”触发 1
- 用第二根手指按屏幕
- “touchesBegan”2 次火灾
- 松开第一根手指
- 没有任何作用
- 放开第二根手指
- “touchesEnded”触发 1
- “touchesEnded”触发 2
但是如何让它像这样工作:
- 用食指触摸屏幕
- “touchesBegan”触发 1
- 用第二根手指按屏幕
- “touchesBegan”2 次火灾
- 松开第一根手指
- “touchesEnded”触发1
- 放开第二根手指
- “touchesEnded”触发 2
我将更新答案以阐明多点触控的工作原理。你在标题中写错了 - 处理触摸的正确顺序是这样 - 所有触摸都有开始和结束,它们自己的地址 - 可以绑定到一个变量,所有触摸都输入到触摸数组中 - 仅限程序员需要通过将必要的触摸链接到它们的变量来跟踪特定触摸的开始和结束。
touchesEnded 函数总是在任何触摸结束时运行,而 touchesBegan 函数 resp。总是在下一次触摸开始时开始。
声明变量 UITouch *touch1; UITouch *touch2;
输出结果
开始开始
touch1 开始第一根手指
开始开始
touch2 开始第二根手指
搬家1
搬家1
感动2
ended1 先放手
感动2
ended2 发布第二个