【问题标题】:Detecting when a custom UIButton has been pressed检测何时按下自定义 UIButton
【发布时间】:2011-10-26 21:32:14
【问题描述】:

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

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

感谢任何建议或代码示例。

【问题讨论】:

    标签: iphone ios cocoa-touch uibutton subclass


    【解决方案1】:

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


    Asker 提供了基于此答案和以下 cmets 的解决方案。

    解决方案

    使用:

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

    选择器是执行背景更改的自定义函数。

    【讨论】:

    • 我需要在按钮的实现中捕获这个触摸事件,以便设置它的背景颜色。
    • 您可以随时将自己添加为自己的触摸事件的侦听器。试试[self addTarget: self action: @selector(setNeedsRedraw) forControlEvents: UIControlEventTouchDown];
    • 谢谢。在self 上使用addTarget 有效。我在您的答案中添加了我的实际解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多