为所有"按钮添加单击,双击和三击手势"在swift的自定义键盘中

时间:2016-03-20 15:39:01

标签: ios iphone swift uigesturerecognizer uitapgesturerecognizer

我试图创建一个键盘,允许单击,双击和三击。所以我想为键盘中的每个按钮添加一个UITapGestureRecognizer()。我知道如何从xib文件中手动执行此操作(将每个字母添加为自己的手势,这需要很长时间),但不太确定如何在Controller中执行此操作。

我在viewDidLoad()方法中用双击来写这个:

let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "doubleTapCharacter:")
doubleTap.numberOfTapsRequired = 2

for button in self.view.subviews{
        button.addGestureRecognizer(doubleTap)
}

并创建了一个doubleTapCharacter()方法,但它仍然无法正常工作。我还希望能够将信息发送到doubleTapCharacter方法。

非常感谢任何帮助。另外,我是一个非常新的快速,所以如果说明很复杂,如果你能把它分解一下,我会非常感激。

1 个答案:

答案 0 :(得分:2)

创建并添加手势识别器:

for button in view.subviews {
    // create the gesture recognizer
    let doubleTapRecognizer = UITapGestureRecognizer(target: self, action: "doubleTapCharacter:")
    doubleTapRecognizer.numberOfTapsRequired = 2

    // add gesture recognizer to button
    button.addGestureRecognizer(doubleTapRecognizer)
}

然后实现目标方法:

func doubleTapCharacter(doubleTapRecognizer: UITapGestureRecognizer) {
    let tappedButton = doubleTapRecognizer.view as! UIButton
    print(tappedButton.titleForState(UIControlState.Normal))
}