コードにリンクされている多くの UIButtons がありますが、メソッドをボタンに接続せずにすべての UIbutton に対して機能し、各ボタンが押されたときにサウンドを再生するメソッドが必要でした。一般的なUIボタンが押されたことを検出する方法はありますか? コードにリンクされていなくても?
質問する
53 次
1 に答える
4
私のコメントで述べたように、1 つのオプションはサブクラス化によるもの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 に答える