UIButton TouchUpInside并不总是被解雇

时间:2016-11-08 15:33:37

标签: ios objective-c swift uibutton

我有一个带数字的DialPad,每个都是UIButton。

对于每个按钮,我处理2个controlEvents:

  • 触地得分:我生成一个音调。
  • TouchUpInside:我停止了语气。

问题是有时候TouchUpInside没有被调用。它只发生在TouchDown事件期间播放音调时。 如果我评论播放铃声的代码,所有事件都会照常调用。

我添加了这样的控制事件:

self.addTarget(self, action: #selector(buttonPressed), forControlEvents: .TouchDown)
self.addTarget(self, action: #selector(buttonUnpressed), forControlEvents: .TouchUpInside)

被叫选择者:

func buttonPressed(button: KeyboardButton) {
    print("IN")
    ACRAccount.generateTone(0x30)
}

func buttonUnpressed(button: KeyboardButton) {
    print("OUT")
    ACRAccount.stopGeneratingTone()
}

我使用外部的objective-c库来播放这样的语气:

+ (void)generateTone:(int)tone
{
    dispatch_async(dispatch_get_main_queue(), ^{
        myExternalLibrary->audio->playTone((char)tone);
    });
}

感谢您的帮助!

编辑1 :似乎调用了.TouchCancel而不是.TouchUpInside。 这是由于我的Objective-C代码,因为一旦评论,它就像一个魅力(没有任何调用.TouchCancel)。 知道为什么吗?

0 个答案:

没有答案