【问题标题】:UITapGestureRecognizer on UIDatePicker not working in ios 15UIDatePicker 上的 UITapGestureRecognizer 在 ios 15 中不起作用
【发布时间】:2021-12-05 18:57:51
【问题描述】:

我有一行供用户选择日期,我正在使用UIDatePicker 来执行此操作。当用户点击它时,我希望它更改行上的一些文本以及打开日期选择器。这以前在我的UIDatePicker 上使用UITapGestureRecognizer 可以激活一些代码,但有东西破坏了它,现在我的UITapGestureRecognizer 根本无法识别!

我认为可能是 iOS 15 改变了一些东西,但查看文档我并没有真正看到任何东西。

我的代码是这样的:

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(hidePlaceholderLabel))
datePicker.addGestureRecognizer(tapGesture)

我的hidePlaceholderLabel 函数永远不会运行。如何在不创建自定义日期选择器的情况下恢复此功能?

我正在使用自动布局并通过 Reveal 确认我的日期选择器确实有一个框架并且应该是可点击的。

【问题讨论】:

    标签: ios swift uigesturerecognizer uidatepicker uitapgesturerecognizer


    【解决方案1】:

    UIDatePicker 上添加.editingDidBegin 事件的目标。当用户点击 UIDatePicker 元素以调整日期时调用此方法。对我来说这很好用

    datePicker.addTarget(self, action: #selector(hidePlaceholderLabel), for: .editingDidBegin)
    

    【讨论】:

      【解决方案2】:

      UIDatePicker 继承自 UIControl,就像 UIButton 一样。因此,您必须添加addTarget 方法,而不是添加轻击手势识别器:

      datePicker.addTarget(self, action: #selector(hidePlaceholderLabel), for: .touchUpInside)
      

      【讨论】:

      • 不幸的是,这似乎不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2021-08-29
      • 2021-10-27
      • 2016-09-25
      • 2012-07-18
      • 2019-09-17
      • 2021-08-28
      相关资源
      最近更新 更多