作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试(但失败了)只创建一个用于多个 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/
我是一名优秀的程序员,十分优秀!