Принятие двойного и однократного касания в ячейках табличного представления, которые содержат метку

Я хочу принимать одинарные и двойные касания в ячейках моего табличного представления. У меня также есть ярлыки с метками в каждой ячейке, которые я бы хотел нажимать. Это взаимодействие, которое является отдельным и отличается от того, что должно происходить, когда пользователь щелкает где-то, кроме хэштега.

Я заметил, что в зависимости от того, как я задаю слово или Google мой вопрос, я получаю 2 разных ответа.

Решение A: UITapGestureRecognizer - одно касание и двойное касание. Принятый ответ предполагает 2 устройства распознавания жестов касания с задержками и большое количество голосов.

Решение B. Другое решение, которое я видел в нескольких потоках, заключается в реализации счетчика ответвлений в tableView:didSelectRowAtIndexPath: в сочетании с коротким таймером. Есть много этих тем с этим как принятый ответ, но ни у одного из них нет так много голосов, как ответ от решения A.

Есть ли аргумент, почему один лучше другого?

Проблема здесь с обоими решениями состоит в том, что жесты засасывают метки моих атрибутивных ярлыков, а ...didSelectRow... решение не дает пользователям быстро подключиться к нескольким ячейкам без проблем; это небрежно и оставляет место для ошибки.

1 ответ

Вы можете иметь 2 жеста.

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikOneTap:)];
tapGesture.numberOfTapsRequired = 1;

А ТАКЖЕ

UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikDoubleTap:)];
doubleTapGesture.numberOfTapsRequired = 2;

С волшебной линией для контроля

[tapGesture requireGestureRecognizerToFail:doubleTapGesture];

Это сработало очень хорошо для меня во многих случаях.

Другие вопросы по тегам