确定在XCode/Swift中使用了哪个TapGestureRecognizer?

Tim*_*rid 1 uitapgesturerecognizer swift xcode6

我正在尝试做一件简单的事情:我在主故事板上设置了两个矩形视图,然后包含TapGestureRecognizers.然后我将这些TGR链接到单个@IBAction函数.现在我需要以某种方式来识别哪个TGR被点击了.

@IBAction func tapOneAct(sender: AnyObject) {
    println(sender)
}
Run Code Online (Sandbox Code Playgroud)

它尝试使用标签,但无法使其工作,显然TGR不能被标记?println(sender)告诉我系统正在运行,但我需要一些可用于进一步编码的东西,比如标签或其他值.

求救!

Dha*_*esh 6

通过使用tag属性,您可以这样做:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var view1: UIView!
    @IBOutlet weak var view2: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let tapGestureView1 = UITapGestureRecognizer(target: self, action: "tapOneAct:")
        let tapGestureView2 = UITapGestureRecognizer(target: self, action: "tapOneAct:")
        //add gesture into both Views.
        view1.addGestureRecognizer(tapGestureView1)
        view2.addGestureRecognizer(tapGestureView2)

    }

    func tapOneAct(sender: UITapGestureRecognizer){

        if let tag = sender.view?.tag {
            switch tag {
            case 1:
                println("First View Tapped")
            case 2:
                println("Second View Tapped")
            default:
                println("Nothing Tapped")
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)