быстрое шоу и скрыть панель навигации - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу создать: показывать вид без панели навигации, а при прокрутке, если расстояние сверху> = 100 высот, и до нижней части показывать панель навигации.

При прокрутке снизу: если расстояние до верха <= 100 высоту нужно скрыть Навигационная панель Я попробую это, но мне это не помогло </p>

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
    if(velocity.y>0) {
        UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
            self.navigationController?.setNavigationBarHidden(true, animated: true)
        }, completion: nil)

    } else {
        UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
            self.navigationController?.setNavigationBarHidden(false, animated: true)
        }, completion: nil)
    }
}

1 Ответ

0 голосов
/ 15 сентября 2018

Функция, которую вам нужно сделать, вы можете сделать с помощью scrollViewDidScroll.Я реализовал и протестировал, и он работает правильно.

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print("scroll Content : \(scrollView.contentOffset.y)")

            if scrollView.contentOffset.y >= 100
            {
                UIView.animate(withDuration: 2.5, animations: {
                    self.navigationController?.setNavigationBarHidden(true, animated: true)
                })

            }
            else
            {

                UIView.animate(withDuration: 2.5, animations: {
                    self.navigationController?.setNavigationBarHidden(false, animated: true)
                })

            }

    }

в viewDidLoad () вы можете скрыть панель навигации, чтобы при открытии приложения эта панель навигации времени была скрыта.

Надеюсь, это поможет вам.

...