Swift如何实现Airbnb App之类的工具栏

时间:2019-07-08 13:29:43

标签: swift toolbar airbnb

我想实现一个类似于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

0 个答案:

没有答案