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(其他视图的子视图)
解决办法:移动按钮的位置;或修改按钮的层次,让按钮作为第一个接受点击事件的视图(点击位置,顶层没有其他打开了用户交互的视图)。