Принятие двойного и однократного касания в ячейках табличного представления, которые содержат метку
Я хочу принимать одинарные и двойные касания в ячейках моего табличного представления. У меня также есть ярлыки с метками в каждой ячейке, которые я бы хотел нажимать. Это взаимодействие, которое является отдельным и отличается от того, что должно происходить, когда пользователь щелкает где-то, кроме хэштега.
Я заметил, что в зависимости от того, как я задаю слово или 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];
Это сработало очень хорошо для меня во многих случаях.