gpt4 book ai didi

ios - 如何为多个 UILabel 创建一个 tapGestureRecognizer?

转载 作者:搜寻专家 更新时间:2023-11-01 07:07:49 25 4
gpt4 key购买 nike

我正在尝试(但失败了)只创建一个用于多个 UILabel 的 tapGestureRecognizer。

现在我正在为 viewDidLoad 中的每个标签创建一个单独的 tapGestureRecognizer 并将其添加到适当的标签。我遇到了这个问题,因为每次触摸显然都应该调用不同的函数。

这就是我创建它们的方式:

@IBOutlet weak var buttonOne: UILabel!
@IBOutlet weak var buttonTwo: UILabel!

override func viewDidLoad() {
super.viewDidLoad()

//tapGestureRecognizer for buttonOne

buttonOne.isUserInteractionEnabled = true
let oneGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(MainViewController.buttonOneAction))
buttonOne.addGestureRecognizer(oneGestureRecognizer)

//tapGestureRecognizer for buttonTwo

buttonTwo.isUserInteractionEnabled = true
let twoGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(MainViewController.buttonTwoAction))
buttonTwo.addGestureRecognizer(twoGestureRecognizer)

...

它们工作正常,但我如何以及在何处创建一个 tapGestureRecognizer 并将其添加到 viewDidLoad 到每个具有不同操作的标签?

最佳答案

只需为每个标签创建一个。

另一种方法是创建一个单击手势识别器,将其附加到所有目标 View 的公共(public)父 View ,并编写一堆代码进行 HitTest 以确定点击是否落在任何标签上,并且如果是,是哪个,并为该标签分派(dispatch)所需的方法。

然而,这就是点击手势识别器的全部意义所在。您可能会花几天时间开发一堆代码,这些代码与使用多个点击手势识别器相比没有任何好处。

关于ios - 如何为多个 UILabel 创建一个 tapGestureRecognizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47025584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com