Как реализовать двойной тап для дальнейших действий, как для получения дополнительной информации? - PullRequest
0 голосов
/ 10 июня 2019

Я реализовал оператор switch. Теперь я изо всех сил пытаюсь добавить жест двойного касания, чтобы показать больше информации, зависящей от случая, выбранного из переключателя.


override func viewDidLoad() {

    let tap = UITapGestureRecognizer(target: self, action: #selector(moreInfo))
    tap.numberOfTapsRequired = 2
    view.addGestureRecognizer(tap)
}

// the main switch case
switch choice {
case 1:
    print("1 is chosen")
    moreInfo(option:1)
case 2:
    print("2 is chosen")
    moreInfo(option:2)

}


//to be activated when double tap 
@objc func moreInfo(option: Int) {
    switch choice {
    case 1:
        print("more information for 1")

    case 2:
        print("more information for 2")
    }
}

1 Ответ

1 голос
/ 10 июня 2019

Я просто пишу пример кода. Надеюсь, это поможет.

Как и в приведенном ниже коде, вы можете использовать двойное и одно нажатие.

class ViewController: UIViewController {

    var singleTap: UITapGestureRecognizer!
    var doubleTap: UITapGestureRecognizer!

    override func viewDidLoad() {
        super.viewDidLoad()

        doubleTap = UITapGestureRecognizer(target: self, action: #selector(tap(gesture:)))
        view.addGestureRecognizer(doubleTap)
        doubleTap.numberOfTapsRequired = 2
        doubleTap.delaysTouchesBegan = true

        singleTap = UITapGestureRecognizer(target: self, action: #selector(tap(gesture:)))
        singleTap.delaysTouchesBegan = true
        singleTap.require(toFail: doubleTap)
        view.addGestureRecognizer(singleTap)
    }

    @objc
    func tap(gesture: UITapGestureRecognizer) {
        switch gesture {
        case singleTap:
            moreInfo(option: 1)
        case doubleTap:
            moreInfo(option: 2)
        default:
            print("---")
        }
    }

    func moreInfo(option: Int) {
        switch option {
        case 1:
            print("more information for 1")

        case 2:
            print("more information for 2")
        default:
            print("---")
        }
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...