在更改值之前检测开关被触摸

Detect Switch touched before changing value

我在设置中有一个 uiswitch,允许用户查看应用程序中的一些敏感内容。在允许用户通过点击更改开关之前,我想提示他们提供密码。

我尝试禁用开关,但不可能(没有一些笨拙的解决方法)从禁用的开关中检测到 tap/touch。

是否有事件或方法可以在 uiswitch 更改值之前检测到 touch/tap,以便我可以防止它更改值并显示提示?

我尝试使用 touchdown 和 touch inside,但它们并没有阻止值的变化。

感谢任何建议。

这是一个主意。如您所说禁用开关。但在开关后面还有另一个视图,一个与开关大小相同的视图,后面有一个 UITapGestureRecognizer。

你看到会发生什么了吗?如果开关被禁用,触摸将落到它后面的视图中,点击手势识别器将触发。因此你会知道用户试图点击开关。

但是一旦输入密码并启用开关,您就可以忽略点击手势识别器(实际上它可能永远不会再触发,因为开关在它前面,会吃掉触摸) .