所有UIButton的Ame方法

时间:2013-01-13 19:45:40

标签: ios xcode

我有许多UIButtons链接到代码,但我希望有一个适用于所有UI按钮的方法,无需将方法连接到按钮,按下每个按钮时播放声音。有没有办法检测何时按下常规UI按钮?即使没有链接到任何代码?

1 个答案:

答案 0 :(得分:4)

正如我的评论中所提到的,一个选项是通过继承UIButton。您可以创建UIButton的子类并实现其init方法以添加将在按下时播放声音的操作。这就像普通的按钮动作,但目标将是这个自定义子类。

- (id)initWithFrame:(CGRect)frame {
    if (self=[super initWithFrame:frame]) {
        [self addTarget:self action:@selector(playSound) forControlEvents:UIControlEventTouchUpInside];
    }
    return self;
}

- (void)playSound {
  //play sound
}

然后使用按钮

CustomButton *aButton = [[CustomButton alloc] initWithFrame:aFrame];

如果您使用的是xib或storyboard,则可以将按钮对象的类别从UIButton更改为CustomButton