【问题标题】:Detect Switch touched before changing value检测开关在改变值之前被触摸
【发布时间】:2017-01-30 19:47:26
【问题描述】:

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

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

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

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

感谢您的任何建议。

【问题讨论】:

  • 正常响应开关。如果用户没有输入正确的密码,请重置开关。

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


【解决方案1】:

这是一个想法。如您所说,禁用开关。但是在switch后面还有另一个view,这个view和switch一样大小,后面有一个UITapGestureRecognizer。

你知道会发生什么吗?如果开关被禁用,触摸将通过它后面的视图,并且点击手势识别器将触发。这样你就会知道用户试图点击开关。

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

【讨论】:

  • 跳出框框思考,有时仅此而已:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多