У меня есть подкласс UIImageView
, который мне нужно знать, когда меня трогают. (Полный код ниже.) Я нашел и прочитал это и это . Они были немного полезны, но ни один из них не сработал. Мой touchesBegan:withEvent:
метод не только не вызывается, но и кнопка позади изображения.
Вот мой код:
Заголовочный файл:
@interface MathKeyboardKey : UIImageView
{
}
@end
Файл реализации:
@implementation MathKeyboardKey
- (id)initWithImage:(UIImage *)image
{
if (self = [super initWithImage:image])
{
//init here
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"-- I AM TOUCHED --");
}
- (void)dealloc
{
[super dealloc];
}
@end
Телефонный код:
{
self.userInteractionEnabled = NO;
mathKeyboardAccess = [[MathKeyboardKey alloc] initWithImage:[UIImage imageNamed:@"mathKey.png"]];
CGRect frm = mathKeyboardAccess.frame;
frm.origin = CGPointMake(80, 171);
mathKeyboardAccess.frame = frm;
mathKeyboardAccess.userInteractionEnabled = YES;
[self addSubview:mathKeyboardAccess];
}
Этот вид добавляется как подпредставление другого (MathKeyboard
). В суперпредставлении не может быть включено взаимодействие с пользователем, поскольку оно охватывает другой вид (системную клавиатуру). Когда я пытаюсь добавить MathKeyboardKey
в системную клавиатуру, он не отображается. Если я пытаюсь использовать UIButton, он никогда не появляется, независимо от того, в каком виде я его размещаю.
Вопрос, если он не очевиден, заключается в следующем: как я могу обнаружить прикосновения в этом UIImageView
подклассе?