如何检测用户何时单击 lyft 按钮 swift

Posted

技术标签:

【中文标题】如何检测用户何时单击 lyft 按钮 swift【英文标题】:how to detect when user click lyft Button swift 【发布时间】:2019-05-23 12:18:54 【问题描述】:

我们需要 Lyft 按钮触摸事件,因为我从事分析工作,所以,我需要有多少人选择 Lyft,但我不能放置 UIView 点击事件。我试试下面的代码。

let gesture = UITapGestureRecognizer(target: self, action: #selector(self.checkAction))
cell.lyftButton.addGestureRecognizer(gesture)

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

您可以直接将选择器方法分配给 lyftButton,例如

lyftButton.addTarget(self, action: #selector(lyftButtonAction(_:)), for: .touchUpInside)

@objc
func lyftButtonAction(_sender: UIButton) 
//Do your action

【讨论】:

兄弟感谢您的回复,但 lyft 不是 UIButton 它是 UIView 控制器所以不能使用 addTarget github.com/lyft/Lyft-ios-sdk#lyft-button 点击视图时你的操作方法不会被调用吗? LyftButton UIViewController 内部的某个地方有一个手势识别器或一个控件。您应该检查视图,弄清楚它是如何捕获点击的,然后将您的视图作为目标添加到该项目。【参考方案2】:

要检索 LyftButton,您需要获取 Lyft 视图中的按钮,在检索到它之后,我尝试向其中添加另一个目标,即您的“checkAction”方法,但由于某种原因它没有被调用.一种解决方法是:

在 Auto Layout 上,在 Lyft 按钮视图顶部创建了一个透明按钮,我们将其称为“透明 Lyft 按钮”:Example(我已嵌入到另一个视图中,因为它位于 stackView 上); 在代码中,使用上述方法检索按钮,将其保存在变量中,我们称其为“requestLyftButton”并禁用它。 为“透明 Lyft Button”创建了一个 IBAction,触发您创建的方法“self.checkAction”,并调用 requestLyftButton.sendActions(for: .touchUpInside),触发原始 Lyft SDK 操作。李>

检索 Lyft UIButton:

@IBOutlet weak var lyftButton: LyftButton!
@IBOutlet weak var transparentLyftButton: UIButton!
var requestLyftButton: UIButton?

func retrieveLyftButton(in view: UIView) 
    for view in view.subviews 
        if let lyftBtn = view as? UIButton 
            lyftBtn.isEnabled = false
            requestLyftButton = lyftBtn
         else 
            retrieveLyftBtn(in: view)
        
    

transparentLyftButton IBAction 触发你的方法 + lyft sdk 原始动作:

@IBAction func requestLyft(_ sender: UIButton) 
    if let lyftBtn = requestLyftButton 
        checkAction() // Your method
        lyftBtn.sendActions(for: .touchUpInside)
    

我希望您能理解所做的事情,如果您有任何问题,请告诉我。

【讨论】:

以上是关于如何检测用户何时单击 lyft 按钮 swift的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用 AVPlayerViewController 检测全屏模式?

Swift - 检测应用程序何时发送到后台而不是设备锁定时

如何检测何时单击文件输入的取消?

检测 AVPlayerViewController 完成按钮点击?

如何检测用户何时按下 iPhone 中的幻灯片关机按钮?

如何检测何时单击/点击 MapMarker? [复制]