iOS 监听触屏,监听点击

本文介绍了iOS监听用户是否触摸屏幕的一种实现方法。包括修改AppDelegate继承UIApplication,更改main.m中的代码,以及重新实现sendEvent方法,在该方法中根据触摸阶段输出相应日志,同时强调不能漏掉调用父类方法,否则app无法启动。

转载连接:ios监听用户是否触摸了屏幕的一种实现

1、修改  AppDelegate 继承  UIApplication ,而不是直接继承 UIResponder

2、为了能让继承了UIApplication的AppDelegate起作用,需要将main.m中的更改为:

return  UIApplicationMain(argc, argv, NSStringFromClass([AppDelegate class]), NSStringFromClass([AppDelegate class]));

3、重新sendEvent:(UIEvent *)event

- (void)sendEvent:(UIEvent *)event

{

    [super sendEvent:event];//这里一定不能漏掉,否则app将不能成功启动。

    NSSet *allTouches = [event allTouches];

    if ([allTouches count] > 0)

    {

        UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;

        if (phase == UITouchPhaseBegan){

            NSLog(@"send UITouchPhaseBegan");

        }

        if (phase == UITouchPhaseEnded){

            NSLog(@"send UITouchPhaseEnded");

        }

        if (phase == UITouchPhaseMoved) {

        }

        if (phase == UITouchPhaseCancelled) {

        }

    }

 

}

iOS移动端监听滑动事件可借助JavaScript的触摸事件来实现。触摸事件包含`touchstart`、`touchmove`、`touchend`和`touchcancel`,它们在不同的触摸状态下触发,比如`touchstart`在手指触摸屏幕时触发,`touchmove`在手指在屏幕上滑动时连续触发,`touchend`在手指从屏幕上移开时触发,`touchcancel`在系统停止跟踪触摸时触发 [^2]。 以下是一个简单的示例代码,用于监听移动端上下左右滑动事件: ```javascript document.addEventListener('touchstart', handleTouchStart, false); document.addEventListener('touchmove', handleTouchMove, false); let xDown = null; let yDown = null; function handleTouchStart(evt) { xDown = evt.touches[0].clientX; yDown = evt.touches[0].clientY; } function handleTouchMove(evt) { if (!xDown || !yDown) { return; } let xUp = evt.touches[0].clientX; let yUp = evt.touches[0].clientY; let xDiff = xDown - xUp; let yDiff = yDown - yUp; if (Math.abs(xDiff) > Math.abs(yDiff)) { if (xDiff > 0) { console.log("向左滑动"); } else { console.log("向右滑动"); } } else { if (yDiff > 0) { console.log("向上滑动"); } else { console.log("向下滑动"); } } xDown = null; yDown = null; } ``` 在上述代码里,先给`document`添加了`touchstart`和`touchmove`事件的监听器。在`touchstart`事件处理函数`handleTouchStart`中,记录下触摸开始时手指的`x`和`y`坐标;在`touchmove`事件处理函数`handleTouchMove`中,计算触摸移动时手指的`x`和`y`坐标与开始时的差值,依据差值判断是上下滑动还是左右滑动,并在控制台输出相应的滑动方向 [^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值