Я уже довольно давно использую UITapGestureRecognizer
, чтобы замечать, когда происходит касание, и отображать другой вид. Я инициализирую это так:
_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
В iOS 4.3 это работало идеально. В iOS 5 -showModalDetailView:
больше не вызывается.
Мне было интересно, есть ли у кого-нибудь еще эта проблема?
Обновление
Я настраиваю распознаватель так:
_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
_tapGesture.numberOfTapsRequired = 1;
_tapGesture.numberOfTouchesRequired = 1;
_tapGesture.delegate = self;
[self addGestureRecognizer:_tapGesture];
Обновление 2
Хорошо, теперь это становится странным. Код снова начинает работать, как только я отключаю настройку делегата, комментируя его. Однако методы делегата все еще вызываются. Но не всегда.
Ячейка имеет выровненный по левому краю заголовок и выровненный по правому краю текст детализации. Когда вы нажимаете подробный текст, он работает должным образом: метод делегата не вызывается, и появляется всплывающее окно. Когда вы попадаете в ячейку где-то еще, вызывается метод делегата (в данном случае -gestureRecognizer:shouldReceiveTouch:
) и появляется всплывающее окно.
Я не совсем понимаю, что здесь происходит.