Iphone 检测何时按下自定义按钮
我已经为我的应用程序创建了一个自定义UIButton(UIButton子类)。在这个按钮的实现中,当按下它时,我将如何改变背景色?(按下时应该恢复为正常背景。我目前正在使用核心图形绘制渐变背景。) 我已尝试在Iphone 检测何时按下自定义按钮,iphone,ios,cocoa-touch,uibutton,subclass,Iphone,Ios,Cocoa Touch,Uibutton,Subclass,我已经为我的应用程序创建了一个自定义UIButton(UIButton子类)。在这个按钮的实现中,当按下它时,我将如何改变背景色?(按下时应该恢复为正常背景。我目前正在使用核心图形绘制渐变背景。) 我已尝试在drawRect:(检查self.selected和self.highlighted)中进行分支,但没有发生任何更改,因为触摸事件中没有调用drawRect 任何建议或代码示例都将不胜感激。请尝试在您的触摸事件中致电[self-SetNeedsDraw] Asker根据这个答案和下面的评论
drawRect:
(检查self.selected
和self.highlighted
)中进行分支,但没有发生任何更改,因为触摸事件中没有调用drawRect
任何建议或代码示例都将不胜感激。请尝试在您的触摸事件中致电
[self-SetNeedsDraw]
Asker根据这个答案和下面的评论提供了一个解决方案 解决方案 使用:
其中选择器是执行背景更改的自定义函数。我需要在按钮的实现中捕获此触摸事件,以便设置其背景颜色。您可以始终将自己作为侦听器添加到自己的触摸事件中。请尝试
[self addTarget:self action:@selector(SetNeedsDraw)forControlEvents:UIControlEventTouchDown];
谢谢。在self
上使用addTarget
有效。我将实际解决方案添加到您的答案中。
[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel];