通过 UITapGestureRecognizer 选择器向函数发送参数参数 [英] sending a parameter argument to function through UITapGestureRecognizer selector
本文介绍了通过 UITapGestureRecognizer 选择器向函数发送参数参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 TapGestureRecognizer 制作具有可变视图数量的应用程序.当视图被按下时,我目前正在这样做
I am making an app with a variable amount of views all with a TapGestureRecognizer. When the view is pressed, i currently am doing this
func addView(headline: String) {
// ...
let theHeadline = headline
let tapRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
// ....
}
但是在我的函数handleTap"中,我想给它一个额外的参数(而不仅仅是发送者)
but in my function "handleTap", i want to give it an additional parameter (rather than just the sender) like so
func handleTap(sender: UITapGestureRecognizer? = nil, headline: String) {
}
如何将特定标题(每个视图都唯一)作为参数发送给 handleTap 函数?
How do i send the specific headline (which is unique to every view) as an argument to the handleTap-function?
推荐答案
与其创建通用的 UITapGestureRecognizer,不如将其子类化并为标题添加一个属性:
Instead of creating a generic UITapGestureRecognizer, subclass it and add a property for the headline:
class MyTapGestureRecognizer: UITapGestureRecognizer {
var headline: String?
}
然后改用那个:
override func viewDidLoad() {
super.viewDidLoad()
let gestureRecognizer = MyTapGestureRecognizer(target: self, action: "tapped:")
gestureRecognizer.headline = "Kilroy was here."
view1.addGestureRecognizer(gestureRecognizer)
}
func tapped(gestureRecognizer: MyTapGestureRecognizer) {
if let headline = gestureRecognizer.headline {
// Do fun stuff.
}
}
我试过了.效果很好.
这篇关于通过 UITapGestureRecognizer 选择器向函数发送参数参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文