When the user taps and holds down a UIButton in my app, after a while a UIControlEventTouchCancel event is fired. The Apple documentation for UIControl doesn't have any detailed explanation about this event. Why is it triggered? What is it used for?
[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];