检测何时按下自定义UIButton

时间:2011-10-26 21:32:15

标签: iphone ios cocoa-touch uibutton subclass

我为我的应用程序创建了一个自定义UIButton(UIButton子类)。在此按钮的实现中,如何在按下时更改背景颜色? (它应该在郁闷时恢复到正常背景。我目前正在使用Core Graphics绘制渐变背景。)

我在drawRect:尝试了分支(检查self.selectedself.highlighted,但没有发生变化,因为在触摸事件中没有调用drawRect

欢迎任何建议或代码示例。

1 个答案:

答案 0 :(得分:15)

尝试在触摸事件中调用[self setNeedsRedraw]


Asker根据这个答案和下面的评论提供了解决方案。

<强>解决方案

用于:

[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel];

选择器是执行后台更改的自定义函数。