UITableviewCell не работает, прокрутка родительской коллекции ViewView вместо - PullRequest
0 голосов
/ 07 марта 2020

У меня есть карусель UICollectionView с UITableView, вложенным в каждую UICollectionViewCell. UICollectionView's layout.scrollDirection = .horizontal, поэтому

  1. Прокрутка UITableView вверх / вниз работает нормально
  2. Размах UITableViewCell не работает, но вместо этого запускается прокрутка UICollectionView.

Как сохранить collectionView.isScrollEnabled в true, но установить приоритет UITableViewCell, чтобы разрешить удаление при смахивании на него?

1 Ответ

0 голосов
/ 10 марта 2020

Я попробовал gestRecognizerShouldBegin, и он сделал свою работу. Вот мое решение (увеличенное изображение показывает, является ли collectionView полноэкранным или нет). Логика c должна проверять, находится ли начальная точка жеста внутри какой-либо из строк tableView (с небольшим зазором слева / справа, чтобы сохранить возможность прокрутки collectionView при панорамировании с боков, используя insetBy (dx: dy :)), currentCell является родительским UICollectionViewCell.

extension MyCollectionView: UIGestureRecognizerDelegate {  

    override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {  
        guard zoomed, let currentCell = currentCell, gestureRecognizer.view is MyCollectionView else { return true }  
        let cellViews = currentCell.myTableView.visibleCells  
        let touchPoint = gestureRecognizer.location(in: currentCell.myTableView)  
        let cellsAtPoint = cellViews.filter {  
            let localPoint = $0.convert(touchPoint, from: currentCell.myTableView)  
            return $0.bounds.insetBy(dx: 40, dy: 0).contains(localPoint)  
        }  
        return cellsAtPoint.count == 0  
    }  

}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...