在禁用的UIButton上接收点击事件的最简单方法是什么?

dev*_*os1 5 cocoa-touch gesture-recognition uibutton ios

我有一个UIButton表单,并希望在表单不完整时将其置于禁用状态.不过,我还是希望能够如果用户试图按即使在其禁用状态的按钮,使界面可以让用户知道形式不补齐尚未对某些必填字段检测(也许滚动那个领域并指出它,等等).

似乎没有任何直接的方法来做到这一点.我试着简单的连接一UITapGestureRecognizerUIButton,但是当按钮处于禁用状态时,它没有响应.

我想UIButton尽可能避免使用子类化,除非这是唯一的方法.

rob*_*off 13

创建一个后备按钮.把它放在主按钮后面.设置其背景和文本颜色以[UIColor clearColor]确保它不会显示.(您不能将其alpha设置为0,因为这会使其忽略触摸.)在Interface Builder中,后备按钮应位于子视图列表中的主按钮上方,如下所示:

子视图列表中的按钮

给它与主按钮相同的框架.如果您正在使用自动布局,请同时选择主按钮和后备按钮并创建约束以保持所有四条边相等.

当主按钮被禁用时,触摸将传递到后退按钮.启用主按钮后,它将捕获所有触摸,后退按钮将不会接收任何触摸.

将后备按钮连接到某个操作,以便您可以检测它何时被轻击.