检测何时按下自定义UIButton

Eva*_*ski 8 iphone cocoa-touch subclass uibutton ios

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

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

任何建议或代码示例表示赞赏.

Mic*_*ine 15

尝试拨打[self setNeedsRedraw]您的触摸事件.


Asker根据此答案和以下评论提供了解决方案.

用过的:

[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel];
Run Code Online (Sandbox Code Playgroud)

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

  • 您可以随时将自己添加为自己的触摸事件的监听器.尝试`[self addTarget:self action:@selector(setNeedsRedraw)forControlEvents:UIControlEventTouchDown];` (2认同)