我有许多链接到代码的 UIButtons,但我希望有一个适用于所有 UIbuttons 的方法,而无需将该方法连接到按钮,以便在按下每个按钮时播放声音。有没有办法检测何时按下一般 UIbutton?即使没有链接到任何代码?
问问题
53 次
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 或故事板,您可以将按钮对象的类从 更改UIButton
为CustomButton
。
于 2013-01-13T19:54:20.517 回答