Animate NavigationBar вверх / вниз на основе смещения контента - PullRequest
1 голос
/ 03 мая 2020

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

Пока у меня есть панель навигации, которая анимируется вверх при прокрутке моего табличного представления вверх, но прокручивается только вниз, когда весь список достигает вершины. Как мне go добавить новые функции?

  1. Закрепить нижнюю часть панели навигации на вкладках безопасной области
  2. Анимировать панель навигации Назад, когда пользователь прокручивает страницу вниз

Рабочий код

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        // Safe Area Insets
        let topAreaInset: CGFloat = UIApplication.shared.windows.filter{$0.isKeyWindow}.first?.safeAreaInsets.top ?? 0
        // Nav Bar Height
        let navigationBarHeight: CGFloat = navigationController?.navigationBar.frame.height ?? 0
        // Total Offset
        let yOffset: CGFloat = scrollView.contentOffset.y + navigationBarHeight + topAreaInset
        // Move NavigationBar
        navigationController?.navigationBar.transform = .init(translationX: 0, y: min(0, -yOffset))
    }

Пример кода

navigation_bar_example

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