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

时间:2017-01-30 19:47:27

标签: ios objective-c uiswitch touch-up-inside

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

我尝试禁用该开关,但是无法检测来自已禁用开关的点按/触摸是不可能的(没有一些蹩脚的解决方法)。

在uiswitch更改值之前是否有检测触摸/点击的事件或方法,以便我可以阻止它更改值并显示提示?

我尝试使用触地得分并触摸内部,但他们并没有停止改变价值。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:6)

这是一个想法。如你所说,禁用开关。但是在交换机后面还有另一个视图,一个与交换机大小相同的视图,后面有一个UITapGestureRecognizer。

你看到会发生什么吗?如果开关被禁用,触摸将通过其后面的视图落下,并且轻击手势识别器将会触发。因此,您将知道用户试图点击开关。

但是一旦给出了密码并且启用了开关,你就可以忽略轻击手势识别器(实际上它可能永远不会再次触发,因为位于它前面的开关会触摸它)。 / p>