У меня есть UIGestureRecognizer, с которым я хочу работать на двух разных UIView, оба из которых находятся в одной и той же иерархии представлений UiViewController. Действие UIGestureRecognizer примерно одинаково для каждого, поэтому я хотел бы, чтобы одна и та же функция вызывалась (, она будет, очевидно, ), и я укажу во время выполнения, с каким из UIViews я имею дело. Но как? Я не вижу, что UIGestureRecognizer несет с собой информацию об объекте. Я пропустил строку в документации или распознаватель жестов не знает, к какому объекту, к которому он был прикреплен, к которому он вызывается? Похоже, смысл языка в том, что он будет знать.
В качестве альтернативы, возможно, я неправильно понимаю назначение класса, и я не должен:
UITapGestureRecognizer *dblTap =
[[UITapGestureRecognizer alloc] initWithTarget: self
action: @selector(handleDblTap:)];
[viewA addGestureRecognizer: dblTap];
[viewB addGestureRecognizer: dblTap];
и затем ожидать, что смогу:
-(void)handleDblTap: (UIGestureRecognizer *)gestureRecognizer
{
if (viewA)...
Если на самом деле UIGestureRecognizer не поддерживает одновременное присоединение к нескольким объектам, тогда, если вы знаете почему он не поддерживает это, не могли бы вы меня просветить? Спасибо за помощь.