0

I want to create : show view without Navigation Bar, and when I scrolling if distance from top >= 100 height and to the bottom show Navigation Bar.

When scroll from bottom : if distance to top <= 100 height need to hideNavigation Bar Im try this, but it did not help me

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 Answer 1

1

The function that you need you can do with scrollViewDidScroll. I have implemented and tested and its working properly.

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) }) } } 

in viewDidLoad() you can hide the navigationbar so when you open app that time navigationbar is hidden.

Hope this will help you.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.