UIButton UIControlEventTouchUpOutside不起作用

car*_*lli 2 objective-c uibutton ios

我有一个自定义的UIButton。要创建突出显示的自定义背景色,我将按钮(自身)作为三个事件的观察者:

[self addTarget:self action:@selector(didTapButtonForHighlight) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(didUnTapButtonForHighlight) forControlEvents:UIControlEventTouchUpInside];
[self addTarget:self action:@selector(didUnTapButtonForHighlight) forControlEvents:UIControlEventTouchUpOutside];
Run Code Online (Sandbox Code Playgroud)

前两个的效果非常好,只要我在按钮内触摸,背景就会恢复为正常。但是,如果我在按钮外触摸,该方法将didUnTapButtonForHighlight永远不会被调用,并且背景仍然是突出显示的颜色。我的代码是Ondrej对这个问题的回答中代码的修改版本。为什么不起作用?提前致谢。

小智 5

您还应进行测试UIControlEventTouchCancel,以防万一您在室外碰触。