我在表单上有一个 UIButton
,当表单不完整时,我想将其置于禁用状态。但是,我仍然希望能够检测用户是否在禁用状态下尝试按下按钮,以便界面可以让用户知道表单上的某些必填字段尚未填写(并且可能滚动到该字段并指出它,等等)。
似乎没有任何直接的方法可以做到这一点。我尝试简单地将 UITapGestureRecognizer
附加到 UIButton
但当按钮处于禁用状态时它没有响应。
如果可能,我想避免子类化 UIButton
,除非这是唯一的方法。
最佳答案
创建一个回退按钮。把它放在主按钮后面。将其背景和文本颜色设置为 [UIColor clearColor]
以确保它不会显示。 (你不能只将它的 alpha 设置为 0,因为这会使它忽略触摸。)在 Interface Builder 中,回退按钮应该在 subview 列表中的主按钮上方,如下所示:
给它与主按钮相同的框架。如果您使用的是自动布局,请同时选择主按钮和后备按钮并创建约束以保持所有四个边都相等。
当主按钮被禁用时,触摸将传递到后备按钮。启用主按钮后,它将捕获所有触摸,而后备按钮将不会接收任何触摸。
将回退按钮连接到一个操作,以便您可以检测它何时被点击。
关于ios - 在禁用的 UIButton 上接收点击事件的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25754367/