iOS 触摸事件之双指先后触摸问题的解决

在iOS开发中,防止双指先后触摸导致的画线问题,可以通过设置定时器来判断。当一个手指触摸时开启定时器,若在设定时间内再次检测到触摸,则视为先后触摸,不允许画线。另一种方法是利用手势识别,通过requireGestureRecognizerToFail方法处理单指和双指手势的优先级,确保在双指滑动失败后才响应单指滑动。两种方案都能有效解决问题,可根据需求选择。
摘要由CSDN通过智能技术生成

     问题情景的引入:在一个画板程序中,我定义只能用一个手指的时候,才可以画线,当有两个手指的时候是不可以进行绘画的。


问题初解决:

①那么最简单的我们会想到,禁止多点触摸不就可以了吗?

答:不行。假如我们禁止了多点触摸,那么当我们两个手指一起触摸的时候,触摸事件的委托方法

- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event

就会随机选一个触摸返回。也就是说始终是会返回一个触摸( touches. count = 1 ),那么照样还是可以进行画线。


②那么我们运行多点触摸,然后在触摸事件的委托方法中,判断触摸点的个数(touches.count),当只有 touches.count == 1 的时候,我们才允许画线不就可以了吗?

答:只有当两个手指同时进行触摸的时候,才可以。为什么呢?

首先,我们两个手指很有可能是一先一后触摸到屏幕的

我们分析一下这个先后触摸的过程:当第一个手指触摸屏幕的时候,- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event 的委托方法会响应一次,这个时候的触摸个数为 1;

当第二个手指触摸屏幕的时候,- (void

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值