1

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

4

1 回答 1

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 或故事板,您可以将按钮对象的类从 更改UIButtonCustomButton

于 2013-01-13T19:54:20.517 回答