UIButtonをサブクラス化してグラフィックスを描画しましたが、「addTarget」は機能しません。UIButtonをサブクラス化していますが、「addTarget:action:forControlEvents:」を実行できません。
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
私はその方法を調整することを何もしなかった。
「タッチ」でボタンのグラフィックスが正常に機能します。
標準のUIButtonを使用すると、「addTarget」が正常に動作します。
私は行方不明ですか?あなたはあなたがすべてのイベントを処理完了したら、あなたのイベントハンドラからスーパーを呼び出す必要があり
THX
#import <UIKit/UIKit.h>
@interface CButton : UIButton
{
CGContextRef c;
int myState;
}
@end
#import "CButton.h"
@implementation CButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
//NSLog(@"init state: %d", self.state);
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
// myState = 1;
myState = !myState;
// NSLog(@"BeginState: %d", self.state);
[self setNeedsDisplay];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
// myState = 0;
// NSLog(@"EndState: %d", self.state);
// [self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
@end
これはあなたの質問に答えるつもりはありませんが、 'UIButton'のサブクラス化は通常災害につながります。代わりに 'UIControl'をサブクラス化しようとします。それはもう少し仕事ですが、あなたは長期的には満足しています。 –
合意して、私はいつもUIButtonのサブクラス化は悪い考えであると言われてきました。 – stephenmuss
'@ interface'のサブクラスと' initWithFrame: 'と' initWithCoder: 'メソッドの実装を示してください。 – Costique