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

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

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

我尝试禁用开关,但不可能(没有一些笨拙的解决方法)检测来自禁用开关的点击/触摸。

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

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

感谢您的任何建议。

最佳答案

这是一个想法。如您所说禁用开关。但是在开关后面还有另一个 View ,一个与开关大小相同的 View ,并且在它后面有一个 UITapGestureRecognizer。

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

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

关于ios - 在更改值之前检测开关被触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41944237/

相关文章:

java - Java 中是否有标准的 GUI 切换开关?

iphone - 自定义开关 - 是 否类型 - iPhone

ios - 将值设置为 nil - swift/parse

ios - 添加本地动态框架后 Cocoapods Mach-O 链接器错误

ios - 通过 URL 链接到 AppStore 上的所有开发者 iPad 应用程序

ios - 使用 Firebase 和 OneSignal 推送通知

objective-c - 指定 NSOpenPanel RunModal 的初始目录?

iphone - textFieldDidBeginEditing 和 textFieldShouldBeginEditing 之间的确切区别是什么

swift - 无法将 UISwitch 连接到 viewcontroller.swift

objective-c - 我的变量在哪里? objective-c