Подтвердить что ты не робот

Просмотр таблицы не прокручивается, когда я использую распознаватель жестов

У моего приложения есть табличное представление (с прокруткой, конечно), и это представление можно включать и выключать с помощью распознавателя жестов (например, в приложении Facebook).

Если я использую кнопку для слайда [вид таблицы на экране], она отлично работает, но когда я использую распознаватель жестов, представление таблицы больше нельзя прокручивать.

Вот код распознавателя жестов с проблемой:

[self.view addGestureRecognizer:self.slidingViewController.panGesture];

У кого-то есть идея?

4b9b3361

Ответ 1

Ваш жест, вероятно, предотвращает работу жестов просмотра прокрутки, потому что по умолчанию только один жест может быть распознан одновременно. Попробуйте добавить себя в качестве делегата вашего жеста и реализовать:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

self.slidingViewController.panGesture.delegate = self;

добавьте <UIGestureRecognizerDelegate> в список протоколов, которые вы реализуете

Ответ 2

Вот быстрая версия:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}

Ответ 3

Я использовал UIPangesture в своем UItableview и, чтобы избежать этого жеста, который я использовал ниже делегата,

//This method helped me stopped up/down pangesture of UITableviewCell and allow only vertical scroll
override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer {
        let translation = panGestureRecognizer.translationInView(superview)
        if fabs(translation.x) > fabs(translation.y) {
            return true
        }
        return false
    }
    return false
}

Ответ 4

У меня была одна и та же проблема определения длинного жестов нажатия на табличном представлении и невозможности прокрутки таблицы, когда я долго нажимаю на нее.

Исправлено:

1- добавление   UIGestureRecognizerDelegate

2- добавление   gesture.delegate = self (after you defined the long press gesture)

3- добавление этой функции:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {return true}

Ответ 5

Если я правильно понимаю, что вы добавляете распознаватель жестов, это вид таблицы. По умолчанию класс UIScrollView (и неявно UITableView) использует распознаватель жестов для прокрутки, и ваш распознаватель жестов вмешивается в это. Если вы используете другое представление в качестве контейнера для представления таблицы, и вы добавляете распознаватель жестов, он должен работать.