Swift Как реализовать панель инструментов как приложение Airbnb - PullRequest
0 голосов
/ 08 июля 2019

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

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0 {
            UIView.animate(withDuration: 0.2, animations: {
                self.toolBar.frame = CGRect(x: 0, y: 20, width: UIScreen.main.bounds.width, height: 44)
                self.eventCollectionView.frame = CGRect(x: 0, y: 64, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - 64)
            })
        } else {
            UIView.animate(withDuration: 0.2, animations: {
                self.toolBar.frame = CGRect(x: 0, y: 64, width: UIScreen.main.bounds.width, height: 44)
                self.eventCollectionView.frame = CGRect(x: 0, y: 108, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - 108)
        })
    }
}

Что происходит, так как панели инструментов требуется 0,2 секунды, чтобы скрыться и показать.Также за эти 0,2 секунды мой collectionView движется вверх (заполняет пространство, где находилась панель инструментов).Я хочу изменить три вещи:

  1. В течение 0,2 секунд я больше не могу прокручивать.Анимация должна закончиться, чтобы я мог снова прокрутить.Я хотел бы иметь возможность прокручивать в любое время, даже внутри анимации.

  2. В приложении Airbnb панель инструментов перемещается «с фоном».Я имею в виду, что при перетаскивании вверх / вниз панель инструментов показывает / скрывает скорость, с которой вы перетаскиваете вид вверх / вниз.

  3. Когда я перестаю касаться экрана, он будет скрыт/ показать полностью, в зависимости от его положения (или в зависимости от того, какая часть панели инструментов видна).

Здесь я получил короткую демонстрацию приложения: https://im2.ezgif.com/tmp/ezgif-2-90a3f5371114.gif

...