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

时间:2019-05-23 12:18:55

标签: ios swift lyft-api

我们想要Lyft按钮触摸事件,因为我正在从事分析工作,因此,我需要多少人选择Lyft,但我无法放置UIView点击事件。我尝试下面的代码。

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

我该如何实现?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

要获取LyftButton,您需要在Lyft视图中获取按钮,在获取它之后,我试图向其添加另一个目标,即您的'checkAction'方法,但是由于某种原因,它并未被调用。一种解决方法是:

  • 在“自动布局”上,在“ Lyft Button”视图上创建了一个透明按钮,我们将其称为“ Transparent Lyft Button”:Example(由于它在stackView上,所以我嵌入了另一个视图); < / li>
  • 在代码上,使用上述方法检索按钮,将其保存在变量中,我们将其称为“ requestLyftButton”并禁用它。
  • 为“透明Lyft按钮”创建了一个IBAction,该IBAction触发了您创建的方法“ self.checkAction”,并调用了requestLyftButton.sendActions(for:.touchUpInside),该触发器触发了原始的Lyft SDK操作。 li>

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

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