UIButton 不响应或延迟响应 UIControlEventTouchDown

UIControlEventTouchDown使用过程中会出现延迟响应或间歇无响应,一直响应特别的慢,一开始以为是程序哪里写错了,最终发现程序没有问题、就上网找些程序员们解答,最终解决问题,在此在此记录一下解决方案方便以后查找,UIButton的事件中,当你放开手指时会直接响应UIControlEventTouchDown、UIControlEventTouchUpInside两个方法,这种情况下按下按钮不响应任何事件,当移动手指时会响应UIControlEventTouchDown。

1.延迟响应:

一般是因为button放在了UIScrollVIew或UITableView上面,按下按钮时系统会判断是不是滑动手势。将UIScrollVIew的delaysContentTouches、 canCancelContentTouches 两个属性都设置为NO;

2.无响应:

    UIControlEventTouchDown事件是一旦手指碰到按钮就调用了,这样在iOS7上会产生一个冲突,由于iOS7加上了手势滑动返回这么一个动作,
    在手势滑动返回时那个区域是不允许有UIControlEventTouchDown事件的,不然就会有事件冲突了,系统不知道是要准备返回还是要点击那个UIButton,
    所以就加上了TouchDown事件的一个延迟响应。
    解决方案   

  •     禁止所有滑动返回的手势,让TouchDown能够正常响应 self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan=NO;
  •     有人说也可以重写UIButton,捕捉所有的手势事件然后重写”。没有测试。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值