如何检测用户何时单击 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 检测全屏模式?