自定义按钮 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 它就无法工作的原因是按钮需要注册触摸事件(touchesBegan
、touchesEnded
、touchesMoved
、touchesCanceled
) 以便能够将它们映射到 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];
当我在我的自定义按钮中放置一些代码时,我的自定义按钮 touchupinside 事件没有触发
注意:当我点击按钮时,此方法会触发但 touchUpInside 方法不会触发
- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
NSLog(@"touchBegan");
[Singleton playSoundForEvent:Sound_ButtonTap];
}
如果我删除上面的代码然后工作正常。
以上代码原因:我没有在touchupinside上到处放敲击声。 我只想要整个项目中的一行代码。
您忘记拨打 super
[super touchesBegan:touches withEvent:event];
如果不调用 super 它就无法工作的原因是按钮需要注册触摸事件(touchesBegan
、touchesEnded
、touchesMoved
、touchesCanceled
) 以便能够将它们映射到 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];