私はあなたが提案したものよりも優れた解決策があると思いますUIButtonのサブクラスは、他のすべての人がタッチイベントを観察するのと同じ方法でタッチイベントを観察します。
// In your UIButton subclass
- (instancetype)initWithFrame:(CGRect)frame {
self = [super buttonWithType:UIButtonTypeCustom];
if (self) {
[self addTarget:self action:@selector(didTouchButton) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)didTouchButton {
// do whatever you need to do here
}
重要な注意:あなたがinit
やinitWithFrame:
を使用するように持って、あなたのボタンを作成する[UIButton buttonWithType:]
を使用することはできません。 UIButtonに便利なイニシャライザがあるにもかかわらず、initWithFrame:
はまだ指定されたイニシャライザです。
「クリックイベント」とは何ですか? – dandan78
http://stackoverflow.com/search?q=%2Bsubclass+%2Buibutton&submit=search – vikingosegundo
@ dandan78クリックすると、私のボタンが何らかのアクションを実行するようにします。私はこのロジックをボタンの中に入れておきたい。もう少し詳しく説明するために、各ボタンがサウンドを再生するアプリケーションを作成しています。ボタンをクリックしたときに再生されるAVAudioPlayerのインスタンスも、それぞれのボタンでカプセル化したいと考えています。 –