UIButton按钮点击无响应处理方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIButton按钮点击无响应处理方法相关的知识,希望对你有一定的参考价值。

参考技术A 按钮的创建在ios里面是很平常的了,但是有些时候创建了按钮却不知道为什么点击无响应,下面我们来分析一下:

1,一般按钮的用户交互属性肯定是默认打开的,但是如果父亲视图的属性是关闭的话,那按钮就不会有响应,比如把按钮加到UIImageView上,那最好把UIImageView的交互属性打开。

2,这个还是和父视图有关,按钮的位置一定要在父视图上,否则程序知道你设置了frame,也加到了父视图上,但就是没有响应,这时候你就得看看,button的frame是不是在父视图的frame范围内,超出范围,button是没有响应的,曾经做过一个ipad项目,在横竖屏的时候,我调整了button的位置,结果在切换时按钮就是没有响应事件,后来才知道父视图的位置也要相应的调整。

3,另外就是button本身的frame问题,或者有没有一层视图盖住了button导致按钮无响应,简单来说就是按钮本身和按钮他爹(父视图)的问题。

4,按钮的无响应事件肯定还有其他更多的原因,目前我也只能想到这了,等后期遇到问题我会继续更新。

iOS UIButton 点击无响应的解决办法

参考技术A

解决办法

这里有两个方法,每次有 touch 动作时,都会走这两个方法

重写方法 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
这是 View 里的一个方法,处理流程如下

最后,这个触摸事件交给主窗口的 hitTest:withEvent: 方法返回的视图对象去处理。

所以我们可以在返回nil时进行处理,因为这个时候button是在父View外的

这个时候按钮在区域外点击也有效果了

参考:
iOS UIButton 点击无响应的解决办法
对UIView的hitTest: withEvent: 方法的理解
hitTest:withEvent:方法流程

以上是关于UIButton按钮点击无响应处理方法的主要内容,如果未能解决你的问题,请参考以下文章

ios 按钮点击无反应

UIButton的使用

iOS扩大UIButton按钮的点击范围

UIButton 子类不响应超级方法?

UIButton 对快速点击没有响应

iOS UIButton单双击处理响应不同的方法