Как передать panGesture в кнопке в tableView? (Свифт 4) - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть segmentedControl, который находится внутри заголовка tableView. Когда он поднимает panGesture, я хочу, чтобы он прокручивал вложенный tableView, как если бы я проводил вверх или вниз в другом месте таблицы.

Я добавил panGesture:

let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.handlePanGesture(_:)))
segmentedControl.addGestureRecognizer(panGestureRecognizer)

Единственное, что близко подходит к тому, что я хочу, это следующее. Но он не ведет себя так, как если бы я проводил tableView нормально. После того, как panGesture завершится, tableView не вернется в исходное положение. Там нет отскока.

@objc func handlePanGesture(_ panGesture: UIPanGestureRecognizer) {
    let translation = panGesture.translation(in: segmentedVotingControl)
    panGesture.setTranslation(CGPoint.zero, in: segmentedVotingControl)
        tableView.contentOffset = CGPoint(x: tableView.contentOffset.x, y: tableView.contentOffset.y - translation.y)
}

Я тоже пробовал что-то подобное, но оно просто блокирует стол. Он не прокручивается:

segmentedVotingControl.addGestureRecognizer(tableView.panGestureRecognizer)

Обычный жест «касание» в сегментированном элементе управления обрабатывается следующим образом:

@objc func segmentedVotingControlAction(sender: UISegmentedControl) {
     // actions to perform on tap
}
segmentedControl.addTarget(self, action: #selector(segmentedVotingControlAction(sender:)), for: .valueChanged)

Есть идеи? Я на правильном пути? Кажется, я должен быть в состоянии каким-то образом пройти через panGesture к tableView.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы должны иметь возможность получить значение panGesture (перемещенная сумма) и затем передать его функции, которая прокручивает tableView следующим образом:

func scrollTableView(amount: CGFloat) {
    let point: CGPoint = CGPoint(x: 0.0, y: amount)
    tableView.setContentOffset(point, animated: true)
}

Вам нужно проверить, является ли анимация ложной.

...