如何检测用户何时单击Lyft按钮Swift



我们想要lyft按钮触摸事件,因为我在分析中工作,所以,我需要有多少人选择lyft,但我不能放置 UIView单击事件。我尝试以下代码。

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

我该如何实现?

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

lyftButton.addTarget(self, action: #selector(lyftButtonAction(_:)), for: .touchUpInside)
@objc
func lyftButtonAction(_sender: UIButton) {
//Do your action
}

要检索lyftbutton,您需要在Lyft视图内获取按钮,在检索它之后,我尝试在其中添加另一个目标,这是您的'CheckAction'方法,但是由于某种原因,它没有被称为。一个解决方法是:

  • 在自动布局上,在Lyft按钮视图的顶部创建了一个透明按钮,让我们来callet"透明的lyft按钮":示例(我已经嵌入了另一个视图中,因为它在stackView上(;
  • >
  • 在代码上,使用上述方法检索该按钮,将其保存在变量中,我们称其为"请求lyftbutton"并将其禁用。
  • 为"透明的Lyft按钮"创建了一个触发您创建的方法'self.ceckaction'的IBACTION,并调用requestlyftbutton.sendactions(用于:.touchupinside(,从而触发原始的Lyft SDK Action。

检索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)
        }
    }
}

透明ftbutton ibaction触发您的方法 lyft SDK原始操作:

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

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

最新更新