自定义按钮 touchUpInside 事件未触发

Custom Button touchUpInside event not fire

当我在我的自定义按钮中放置一些代码时,我的自定义按钮 touchupinside 事件没有触发

注意:当我点击按钮时,此方法会触发但 touchUpInside 方法不会触发

- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    NSLog(@"touchBegan");
    [Singleton playSoundForEvent:Sound_ButtonTap];
}

如果我删除上面的代码然后工作正常。

以上代码原因:我没有在touchupinside上到处放敲击声。 我只想要整个项目中的一行代码。

您忘记拨打 super

[super touchesBegan:touches withEvent:event];

如果不调用 super 它就无法工作的原因是按钮需要注册触摸事件(touchesBegantouchesEndedtouchesMovedtouchesCanceled) 以便能够将它们映射到 UIControlEvent,然后才使用 sendAction.

触发操作

完整代码

- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
    NSLog(@"touchBegan");
    [Singleton playSoundForEvent:Sound_ButtonTap];
}

请检查此代码并再次测试,希望它能正常工作。

[super touchesBegan:touches withEvent:event];