Можно ли добавить перетаскивание, чтобы перезагрузить горизонтально для представления коллекции? - PullRequest
1 голос
/ 16 июня 2019

Обновление:

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

Когда пользователь перетаскивает верхнюю часть области прокручиваемого содержимого вниз

Найдено здесь.

Дайте мне знать, если есть способ сделать это.


Я пытаюсь сделать так, чтобы, когда пользователь проведет пальцем влево (как вы проводите вверх во многих приложениях с tableViews для перезагрузки) в представлении коллекции, он отобразит значок загрузки и перезагрузит данные (часть данных перезагрузки я могу справиться сам).

Как я могу обнаружить это, чтобы я мог вызвать метод reloadData()?

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

Я ищу способ обнаружить слайд влево, предназначенный для перезагрузки.

Что я пробовал:

    let refreshControl = UIRefreshControl()

override func viewDidLoad() {
    super.viewDidLoad()
    viewDidLoadMethods()
    refreshControl.tintColor = .black
    refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
    collectionView.addSubview(refreshControl)
    collectionView.alwaysBounceHorizontal = true

Но это работает только вертикально.

1 Ответ

2 голосов
/ 16 июня 2019

Я решил эту проблему следующим образом, но должен отметить, что функциональность по умолчанию отсутствует, как и для вертикального обновления:

 func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let offset = scrollView.contentOffset
    let inset = scrollView.contentInset
    let y: CGFloat = offset.x - inset.left
    let reload_distance: CGFloat = -80

    if y < reload_distance{
        shouldReload = true
    }
}

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    if let _ = scrollView as? UICollectionView {

        currentlyScrolling = false

        if shouldReload {
            baseVC.showReloading()
            reloadCollectionView()
        }
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...