首页 - IOS编程

OC: UIbutton 点击无反应的几种情况

OC: UIbutton 点击无反应的几种情况,笔者近期遇到的就是第二种情况,这种情况也是比较多的!

一、UIButton不能点击情况的第一种是,将button添加到一个不能响应点击事件的View里。
比如你将button添加到UIImageView中,解决办法只需将UIImageViewuserInteractionEnabled设为YES即可。

        self.headImgV.userInteractionEnabled = YES;

    [self.view addSubview:self.headImgV]; 



二、 UIButton不能点击情况的第二种是,你对button修改frame时,出现buttonframe超过了父Viewframe。这种情况也会导致button点击不能触发点击事件,这种情况只需要重新就该buttonframe,并让buttonframe不超过父Viewframe。你可以通过打印button和父Viewframe来查看是否出现这种上述的这种情况。


三、UIButton不能点击情况的第三种是,你在button上添加了一个View,然后这个View能响应事件。但是这个View并没有响应的点击触发事件。所以当你在点击button的时候,是将触发事件传递给View,而button本需要触发的事件则被忽略了。解决办法是,让添加的这个ViewuserInteractionEnabled设为NO即可。
用Xib创建的自定义控件的话吧User Interaction Enable 取消勾选即可

User Interaction Enabled.png

例如: UIButton上添加了两三个View, 最好把这些ViewUser Interaction Enable都设置成NO, 不然可能造成手势冲突.


四、 UIButton不能点击和 SVProgressHUD 或者 MBProgressHUD有关
(或者UIButton上层被罩了一层, 不能点击的话, 去看层级是最方便的了)
上一篇:ITMS-90809: Depr