Последние несколько часов я был в разных темах, пытаясь найти решение своей проблемы, но безрезультатно.
Я вижу, что многие разработчики разделяют эту проблему, и я думаю, что люди здесь знают об этом.
У меня есть несколько изображений внутри UIScrollView
, пытающихся получить на них события касания.
не получает никаких событий от UIImangeView
, но я получаю событие от аналогичного UILable
с очень похожими параметрами, которые я ему задаю. под IOS 5.1.
Я уже сделал следующее:
- установить для setUserInteractionEnabled значение YES как для UIImageView, так и для parent
просмотр.
- установите для setMultipleTouchEnabled значение YES для
UIImageView
.
- Пробное наследование
UIImageView
, не помогло никому.
Прикрепив некоторый код ниже, в этом коде я инициализирую и UIImageView
, и UILabel
, метка отлично работает с точки зрения событий стрельбы. Я пытался не учитывать нерелевантный код.
Спасибо, парни,
Илан
UIImageView *single_view = [[UIImageView alloc]initWithFrame:CGRectMake(200, 200, 100, 100)];
single_view.image=img;
single_view.layer.zPosition=4;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[single_view addGestureRecognizer:singleTap];
[single_view setMultipleTouchEnabled:YES];
[single_view setUserInteractionEnabled:YES];
[self.myScrollView addSubview:single_view];
self.myScrollView.userInteractionEnabled=YES;
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
testLabel.backgroundColor=[UIColor redColor];
[self.myScrollView addSubview:testLabel];
[testLabel addGestureRecognizer:singleTap];
[testLabel setMultipleTouchEnabled:YES];
[testLabel setUserInteractionEnabled:YES];
testLabel.layer.zPosition=4;
И метод, который обрабатывает событие:
- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
{
UIView *tappedView = [gesture.view hitTest:[gesture locationInView:gesture.view] withEvent:nil];
NSLog(@"Touch event on view: %@",[tappedView class]);
}
Как уже было сказано, ярлык получен.