У меня есть класс Player, который является подклассом UIImageView. Они порождаются другим классом и остаются на экране в течение 3 секунд, прежде чем исчезнуть. Если пользователь нажимает на изображение, оно должно исчезнуть немедленно. К сожалению, touchesBegan
никогда не стреляет. У меня userInteractionEnabled установлено в YES.
-(id)initWithImage:(UIImage *)image
{
self = [super initWithImage:image];
if (self) {
// Initialization code here.
[self setUserInteractionEnabled:YES];
// start timers to have it disappear after 3 sec
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// never called
[self disappear:nil];
}
Все ответы, которые я могу найти, скажем, для установки userInteractionEnabled на YES, но я уже сделал это. Если это что-то значит, изображения создаются другим классом под названием Manager, который является собственным UIImageView в качестве фона приложения. Эти изображения меньше и периодически вспыхивают поверх этого фона. Фоновый UIImageView также имеет userInteractionEnabled, установленный в YES. Изображения мигают хорошо, они просто не реагируют на сенсорные события.
Класс Player сделан из класса Manager следующим образом:
Player* t = [[Player alloc] initWithImage:[imgArray objectAtIndex:imageIndex]];
[field addSubview:t];
[t becomeFirstResponder];
field
- фоновое изображение (также UIImageView).