解决按钮失效问题-iOS小技巧

1.按钮的位置不对

实际上并不是按钮失效了,而是按钮的位置设置错误,并没有点击到按钮上。

解决方法:可以给按钮设置上颜色,或者输出按钮的位置,检查位置是否设置对了。
2.按钮的Size为{0,0}

与上面所述的情况相似,按钮没大小的时候不管怎么点都不可能点到按钮。这种情况容易出现在按钮有子视图的时候,虽然按钮没有大小,但如果不对子视图设置超出边界裁剪的话,子视图的显示是正常的。这种情况下会认为按钮是存在的。

解决方法:直接输出按钮的大小,检查按钮的大小是否正确。(注:使用父视图的bounds来设置大小时很容易出现这种问题)
3.绑定方法错误

1)没有绑定方法 
2)方法名字不匹配 
3)触发事件错误

解决办法:仔细检查绑定方法的语句。
4.按钮的用户交互被取消

按钮无法捕捉点击事件。

解决办法:按钮的userInteractionEnabled属性设置为YES。(button.userInteractionEnabled = YES;)
5.父视图的用户交互被取消

父视图的用户交互被取消后,子视图的用户交互也将被取消。如果按钮是子视图中的一个,按钮将失效。

解决办法:父视图的userInteractionEnabled属性设置为YES。
6.点击事件被其他视图捕捉了

在点击位置如果按钮有其他视图,并且这个视图打开了用户交互(userInteractionEnabled属性为YES),按钮将无法捕捉到事件响应(不管顶层的视图是不是按钮的子视图)。 
例如:在点击位置,按钮1的顶层有个按钮2(按钮1的子视图) 
在点击位置,按钮1的顶层有个按钮2(其他视图的子视图)

解决办法:移动按钮的位置;或修改按钮的层次,让按钮作为第一个接受点击事件的视图(点击位置,顶层没有其他打开了用户交互的视图)。
7.引入其他第三方库,对UIButton进行扩展,引起事件点击冲突     需要打断点进行单步调试,确定问题出在哪个位置,进行有效定位,并修改其方法实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值