码迷,mamicode.com
首页 > 移动开发 > 详细

[ios高级] UIButton 不响应或延迟响应 UIControlEventTouchDown 事件的解决办法

时间:2014-12-22 16:23:24      阅读:738      评论:0      收藏:0      [点我收藏+]

标签:

         UIControlEventTouchDown即按钮按下时应触发的方法。实际使用过程中会出现延迟响应或间歇无响应,但是放开手指时会直接响应UIControlEventTouchDown、UIControlEventTouchUpInside两个方法,这种情况下,按下按钮不响应任何事件,当移动手指时会响应UIControlEventTouchDown。

1.延迟响应:

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

2.无响应:查到的资料,有人说“

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

  •     禁止所有滑动返回的手势,让TouchDown能够正常响应 self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan=NO;
  •     重写UIButton,捕捉所有的手势事件然后重写”。

这个我测试无效果,可能是我的姿势不对?我的按钮是在iPad横屏时靠右下角的位置,后来发现将按钮上移一点就没问题了(我上移了20个像素)。以上两种情况均是iPad air测试通过,仅供参考。


[ios高级] UIButton 不响应或延迟响应 UIControlEventTouchDown 事件的解决办法

标签:

原文地址:http://blog.csdn.net/zhaoyabei/article/details/42077097

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!