美文网首页
ios  按钮的touchDown事件延迟

ios  按钮的touchDown事件延迟

作者: S型身材的猪 | 来源:发表于2018-11-07 16:28 被阅读29次

当按钮的位置位于控制器的最底部时,touchDown事件会有所延迟,例如控制器最底部有一个语音按钮,长按语音按钮说话,这时你会发现事件会有所延迟,这是因为跟系统屏幕的底部边缘手势冲突了

方法一:

在你的控制器中,重写下面这个方法

- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures {
    if (isIPhoneX) { // isIPhoneX是一个宏,判断是否为iPhoneX及以上机型
        return UIRectEdgeNone;
    }
    return UIRectEdgeBottom;
}

方法二: (在控制器的viewDidAppear:方法和viewWillDisappear:添加以下代码)

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    for(UIGestureRecognizer* gesture in self.view.window.gestureRecognizers){
        gesture.delaysTouchesBegan = NO;
    }
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    for(UIGestureRecognizer* gesture in self.view.window.gestureRecognizers){
        gesture.delaysTouchesBegan = YES;
    }
}

个人更推荐方法二,方法二中之所以在viewWillDisappear:方法中设置回yes,是因为window是一个单例,如果改变了属性值会影响全局

相关文章

  • ios  按钮的touchDown事件延迟

    当按钮的位置位于控制器的最底部时,touchDown事件会有所延迟,例如控制器最底部有一个语音按钮,长按语音按钮说...

  • UIButton TouchDown事件延迟响应问题

    有时候放在屏幕边缘的Button会出现延迟响应TouchDown事件的问题(表现为手指按下后有很明显的一段时间延迟...

  • 移动端兼容性问题解决方案

    1. IOS移动端click事件300ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点...

  • UIControlEventTouchDown 延时响应

    将按钮放在view的底部,按钮的左边边处的UIControlEventTouchDown事件延迟响应。(只在真机上...

  • js 与 jquery

    图片 mylib颜色随机 延迟跳转 轮翻界面 按钮事件 增加删除事件 恶意广告事件 表格和AV事件 图片事件 小圆...

  • 2018-11-06day6-BOM相关操作

    一、轮播效果 二、事件绑定方法 三、绑定事件的两种情况 四、延迟跳转 五、按钮事件 六、轮播效果改进

  • iOS-RunLoop浅析

    RunLoop是iOS事件响应与任务处理最核心的机制,它贯穿iOS整个系统,自动释放池,延迟处理,触摸事件,屏幕刷...

  • Swift Butto

    touchDown:单点触摸按下事件,点触屏幕touchDownRepeat:多点触摸按下事件,点触计数大于1,按...

  • UIButton的UIControlEventTouchDown

    Bug天天有,今年特别多UIButton的TouchDown事件还能不响应,多次测试,发现UINavigation...

  • 移动端固定底部的键盘随系统键盘弹起问题

    1、Android端,可以监听resize事件,进行显示隐藏按钮 2、IOS端,可以监听focus和blur事件,...

网友评论

      本文标题:ios  按钮的touchDown事件延迟

      本文链接:https://www.haomeiwen.com/subject/iwmvxqtx.html