UITableView можно перетаскивать вверх и вниз, не позволяя жестом смахивания?
Я новичок в Swift и пытаюсь добавить распознаватель жестов в своем UIView. Я вставил градиент CALayer в индекс 0, чтобы иметь градиентный фон.
Моя проблема:
Жесты смахивания вправо и влево отлично работают, но для нажатия вниз не работает, почему?
2 ответа
Установите делегат жестов смахивания, которые вы добавляете в представление.
let swipeGesture = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipe:"))
swipeGesture.delegate = self
self.view.addGestureRecognizer(swipeGesture)
self.mySwipeGesture = swipeGesture
GestureRecognizerDelegate спрашивает, следует ли разрешить двум распознавателям жестов распознавать жесты одновременно. Вернуть true
разрешить и gestRecognizer, и otherGestureRecognizer одновременно распознавать их жесты. Реализация по умолчанию возвращает false
- два жеста не могут быть распознаны одновременно. Реализуйте следующий делегат для достижения этой цели.
extension ViewController : UIGestureRecognizerDelegate {
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
//Identify gesture recognizer and return true else false.
return gestureRecognizer.isEqual(self.mySwipeGesture) ? true : false
}
}
Проведение пальцем вверх и вниз - свойство по умолчанию для табличного представления. Я бы посоветовал вам отключить прокрутку табличного представления всякий раз, когда вы хотите что-то сделать с оверлеем.
tableView.scrollEnabled = NO;
Если вы выполняете перетаскивание определенной ячейки, нажмите и удерживайте ее, а затем начните перетаскивание.
Вот как вы можете достичь этого.
Надеюсь это поможет.