Я подклассифицировал UIButton для рисования графики, но «addTarget» не будет работать.SubClassing UIButton, но я не могу получить «addTarget: action: forControlEvents:» выполнить?
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
Я ничего не делал с внесением изменений в этот метод.
Картинка для кнопок работает на «прикосновениях».
Если я использую стандартный UIButton, то «addTarget» отлично работает.
Не уверен, что мне не хватает ???
ТНХ
#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