4

我有一个自定义 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];

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

4

1 回答 1

7

您还应该测试UIControlEventTouchCancel以防万一您在外面触摸。

于 2013-08-22T21:11:44.363 回答