什么是 UIControl 事件 TouchCancel?
What is UIControlEventTouchCancel?
当用户点击并按住我的应用程序中的 UIButton 时,会在一段时间后触发 UIControlEventTouchCancel 事件。 UIControl 的 Apple 文档没有关于此事件的任何详细说明。为什么会触发?它有什么用?
[button addTarget:key action:@selector(keyUp:) forControlEvents:UIControlEventTouchUpInside];
[button addTarget:key action:@selector(keyUp:) forControlEvents:UIControlEventTouchUpOutside];
[button addTarget:key action:@selector(keyCancel:) forControlEvents:UIControlEventTouchCancel];
[button addTarget:key action:@selector(keyDown:) forControlEvents:UIControlEventTouchDown];
According to the documentation,一个 UIControlEventTouchCancel
事件是由于:
A system event canceling the current touches for the control.
因此,触摸结束不是由于用户输入,而是系统事件(例如内存不足警告,或应用程序进入后台)。 我不知道为什么你只需按住按钮就可以触发它。
我很确定它与 UIResponder
的 touchesCancelled:withEvent:
事件类似(如果不是由该事件引起)。这方面的文档稍微详细一点:
This method is invoked when the Cocoa Touch framework receives a system interruption requiring cancellation of the touch event; for this, it generates a UITouch object with a phase of UITouchPhaseCancel. The interruption is something that might cause the application to be no longer active or the view to be removed from the window
一个场景是屏幕旋转。如果您在按住按钮的同时旋转屏幕,您将获得触摸取消事件。
当用户点击并按住我的应用程序中的 UIButton 时,会在一段时间后触发 UIControlEventTouchCancel 事件。 UIControl 的 Apple 文档没有关于此事件的任何详细说明。为什么会触发?它有什么用?
[button addTarget:key action:@selector(keyUp:) forControlEvents:UIControlEventTouchUpInside];
[button addTarget:key action:@selector(keyUp:) forControlEvents:UIControlEventTouchUpOutside];
[button addTarget:key action:@selector(keyCancel:) forControlEvents:UIControlEventTouchCancel];
[button addTarget:key action:@selector(keyDown:) forControlEvents:UIControlEventTouchDown];
According to the documentation,一个 UIControlEventTouchCancel
事件是由于:
A system event canceling the current touches for the control.
因此,触摸结束不是由于用户输入,而是系统事件(例如内存不足警告,或应用程序进入后台)。 我不知道为什么你只需按住按钮就可以触发它。
我很确定它与 UIResponder
的 touchesCancelled:withEvent:
事件类似(如果不是由该事件引起)。这方面的文档稍微详细一点:
This method is invoked when the Cocoa Touch framework receives a system interruption requiring cancellation of the touch event; for this, it generates a UITouch object with a phase of UITouchPhaseCancel. The interruption is something that might cause the application to be no longer active or the view to be removed from the window
一个场景是屏幕旋转。如果您在按住按钮的同时旋转屏幕,您将获得触摸取消事件。