У меня есть 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.