swift - 快速将参数传递给#selector 方法

原文 标签 swift swift2 uitapgesturerecognizer

这个问题在这里已经有了答案:





Pass extra argument for UItapgestureRecognizer with selector

(4 个回答)


5年前关闭。




我想在单击图像时将多个参数传递给函数。
这是我的代码

var param1 = 120
var param2 = "hello"
var param3 =  "world"

let image: UIImage = UIImage(named: "imageName")!
 bgImage = UIImageView(image: image)

let singleTap = UITapGestureRecognizer(target: self, action:#selector(WelcomeViewController.tapDetected(_:secondParam:thirdParam:)))
singleTap.numberOfTapsRequired = 1
bgImage!.userInteractionEnabled = true
bgImage!.addGestureRecognizer(singleTap)

调用函数
func tapDetected(firstParam: Int, secondParam: String, thirdParam: String) {
print("Single Tap on imageview")
            print(firstParam)  //print 120
            print(secondParam) // print hello
            print(thirdParam) /print world
        }

如何传递参数以便获得正确的值?

最佳答案

你不能。从文档:

A gesture recognizer has one or more target-action pairs associated with it.
...
The action methods invoked must conform to one of the following signatures:

- (void)handleGesture;
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;

您可以使用实例变量来传递参数。

关于swift - 快速将参数传递给#selector 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38328956/

相关文章:

ios - Protocol Buffer 代码针对iOS模拟器而非设备进行编译

ios - 如何将多个imageview分组以具有1个点击手势识别器?

ios - 如何检测已触摸的单元格的行

ios - 具有 UITapGestureRecognizer 的 View 内的 UIButton

swift - 上下文菜单期间未调用“关键修饰符”监视器

ios - 如何用有角度的渐变填充 CAShapeLayer

arrays - 如何快速将自定义结构数组保存到 NSUserDefault?

ios - (SpriteKit + Swift 2)-当用户点击 Sprite 时删除 Sprite

swift - swift :数组contains(AnyObject)错误无法转换类型…throw-> Bool

swift - 有什么方法可以批量提取特定大小(例如50个)的 Realm 中存储的大量数据?