I am trying to implement the iOS 11 native large navigation bar title on my new application. By calling below functions in viewDidLoad():
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationItem.largeTitleDisplayMode = .always
I do get what I desired.
But, when I start scrolling up (the only view inside the main view is a scroll view), the scrolling makes the large title disappear at a faster velocity than actual scroll with the finger. (that is, if I move 2cm on screen, the scroll view actually scrolls more than 2cm, up until the large title shrinks to the 'usual' size.)
The below is the gif of my app being scrolled. I actually move very little, and it automatically scrolls up that much. This differs from the Apple-made applications (the app store for instance, shown below my app).
Does anyone have solution to solving this abnormal behaviour?
EDIT: Per request, I am adding the current View hierarchy. There isn't anything special in my code, I just set the title and flag for prefersLargeTitles
.
I solved the problem with these constraints:
NSLayoutConstraint.activate([ scrollView.topAnchor.constraint(equalTo: view.topAnchor), scrollView.leftAnchor.constraint(equalTo: view.leftAnchor), scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), scrollView.rightAnchor.constraint(equalTo: view.rightAnchor) ])
You also have to set this property on your UIViewController subclass:
extendedLayoutIncludesOpaqueBars = YES
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With