Обнаружение касаний в uiimageview внутри uiscrollview - PullRequest
17 голосов
/ 26 октября 2010

У меня есть UIScrollView с несколькими UIImageViews, созданными следующим образом.

frame = [[UIImageView alloc] initWithImage:bg];
frame.frame = CGRectMake(FRAME_SEPARATOR + numPage*1024 + numColumn*(FRAME_SEPARATOR+230), 10 +numRow*(FRAME_SEPARATOR+145), 230, 145);
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[frame addGestureRecognizer:tap];
[tap release];
[scroll addSubView:frame];

Проблема в том, что imageTapped не вызывается при нажатии на изображение.

Если я добавлюраспознаватель жестов для вида прокрутки:

UITapGestureRecognizer *tap =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[scroll addGestureRecognizer:tap];
[tap release];

вызывается imageTapped.

Как я могу обнаружить касания по UIImageViews?

Спасибо

1 Ответ

46 голосов
/ 26 октября 2010

Убедитесь, что для userInteractionEnabled установлено значение YES в UIImageView:

frame.userInteractionEnabled = YES;

Я бы также рекомендовал использовать другое имя для переменной UIImageView (например, imageView вместо frame). В противном случае вы можете легко спутать его со свойством фрейма представления.

...