使用TapGestureRecognizer正确语法

时间:2016-10-21 23:38:46

标签: swift segue xcode8 uitapgesturerecognizer

任何人都可以帮我解决这个错误吗?不知道它要求的是什么......

TapGestureRecognizer Syntax

    override func viewDidLoad() {
    super.viewDidLoad()

    let tapStart = UITapGestureRecognizer(target: self, action:#selector(tapped(gesture:)))
    self.view.addGestureRecognizer(tapStart)

    func tapped(gesture: UITapGestureRecognizer){
        print("It actually worked")
    }
}

我的最终目标似乎应该相当简单:

当用户点按屏幕上的任意位置时,我想要转到另一个视图。我正在创建一个TapGestureRecognizer,现在我只是打印到日志作为方法,所以我可以很容易地看到它是否有效。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您使用的是Swift 3,请尝试使用#selector(tapped(gesture:))。如果您使用的是Swift 2,则选择器可能会是tapped(_:)或其他内容。

编译器将确保在您使用#selector时存在您引用的符号。如果你使用一个字符串并让编译器从字符串文字创建一个选择器,你得到的就是这样的警告。使用Selector("funcname")构造函数也有同样的缺点。

答案 1 :(得分:0)

试试这段代码:在Swift 3中测试

注意:Swift 3中的语法已更改。

您可以通过键盘上的功能+控制+选项+命令+ f 进行自动修复,然后Xcode会为您解决问题。

你的代码没有错。就是你使用它的方式。你应该像这样放置代码......

override func viewDidLoad() {
    super.viewDidLoad()

    let tapStart = UITapGestureRecognizer(target: self, action:#selector(tapped(gesture:)))
    self.view.addGestureRecognizer(tapStart)   
    }
    func tapped(gesture: UITapGestureRecognizer){ // func tapped(_:) this will works to
        print("Your in Right track mate")
    }