ios – 在Swift中获取UITapGestureRecognizer的发件人

所以我正在研究一种选择器,它提醒用户平移对象而不是点击它.
以下代码是动画:

func labelTapped(sender:UITapGestureRecognizer)->Void{
    UIView.animateWithDuration(0.2,delay: 0,options: UIViewAnimationoptions.CurveEaseIn,animations: {
        sender.view.frame = CGRectMake(sender.view.frame.origin.x + 15,sender.view.frame.origin.y,sender.view.frame.width,sender.view.frame.height)
        },completion:
        {(value:Bool) in
            UIView.animateWithDuration(0.2,options: UIViewAnimationoptions.CurveEaSEOut,animations: {
                sender.view.frame = CGRectMake(sender.view.frame.origin.x - 15,sender.view.frame.height)
                },completion:
                {(value:Bool) in
                })
        })
}

现在回到对象本身.我正在分配一个UITapGestureRecognizer并将其添加到对象中,但我不确定它是如何工作的,因为回到Objective-C,我们曾经做过:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(labelTapped)];

其中不需要参数.但是在Swift中,我必须在labelTapped之后的括号中加入一个参数,因为它会在调用错误中给出参数#1的Missing参数:

let labelTap1=UITapGestureRecognizer(target: self,action: labelTapped())

我该如何解决这个问题?谢谢!

解决方法

动作选择器是一个以冒号结尾的字符串,它告诉它有一个参数(发送者):

let labelTap1=UITapGestureRecognizer(target: self,action: "labelTapped:")

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...