【问题标题】:Getting UITapGestureRecognizer's sender in Swift在 Swift 中获取 UITapGestureRecognizer 的发件人
【发布时间】:2014-07-20 00:18:26
【问题描述】:

所以我正在开发一个选择器,提醒用户平移对象而不是点击它。 以下代码为动画:

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, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, 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
                })
        })
}

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

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

不需要参数。但是在 Swift 中,我必须在 labelTapped 之后的括号中输入一个参数,因为它会给我一个 Missing argument for parameter #1 in call 错误:

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

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

【问题讨论】:

    标签: ios swift uitapgesturerecognizer


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
        override func viewDidAppear(animated: Bool) {
              super.viewDidAppear(animated)
      
              let tapRecognizer = UITapGestureRecognizer(target: self, action: "handleSingleTap:")
              tapRecognizer.numberOfTapsRequired = 1
              self.view.addGestureRecognizer(tapRecognizer)
      
          }
      
       func handleSingleTap(recognizer: UITapGestureRecognizer) {
      
              self.view.endEditing(true)
      
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多