To overcome I have made custom code to implement this follow below code:
private var lastContentOffset: CGFloat = CGFloat(kInt0)
var intScrollLogo: CGFloat = CGFloat(kInt0)
@IBOutlet weak var viewNavigationHeightConstraint: NSLayoutConstraint!
let kInt0 = 0
let kInt1 = 1
let kInt64 = 64
let kInt22 = 22
let kInt44 = 44
let kInt600 = 600
func scrollViewDidScroll(scrollView: UIScrollView) {
if (self.lastContentOffset >= scrollView.contentOffset.y) {
// move up
if scrollView.contentOffset.y >= CGFloat(kInt0){
if intScrollLogo >= CGFloat(kInt0) && (scrollView.contentSize.height - scrollView.contentOffset.y) > CGFloat(kInt600) {
self.viewNavigationHeightConstraint.constant = CGFloat(kInt64) - intScrollLogo
intScrollLogo = intScrollLogo - CGFloat(kInt1)
// addAnimationToTopLogo(0.1)
}
}
if self.lastContentOffset <= CGFloat(kInt0) {
intScrollLogo = CGFloat(kInt0)
self.viewNavigationHeightConstraint.constant = CGFloat(kInt64)
// addAnimationToTopLogo(0.2)
}
}
else if (self.lastContentOffset < scrollView.contentOffset.y) { // move down if scrollView.contentOffset.y > CGFloat(kInt0) {
if intScrollLogo <= CGFloat(kInt44) { self.viewNavigationHeightConstraint.constant = CGFloat(kInt64) - intScrollLogo intScrollLogo = intScrollLogo + CGFloat(kInt1) // addAnimationToTopLogo(0.1) } } } self.lastContentOffset = scrollView.contentOffset.y } func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) { if intScrollLogo > CGFloat(kInt22) {
intScrollLogo = CGFloat(kInt44)
self.viewNavigationHeightConstraint.constant = CGFloat(kInt20)
addAnimationToTopLogo(0.2)
}
if intScrollLogo < CGFloat(kInt22) {
intScrollLogo = CGFloat(kInt0)
self.viewNavigationHeightConstraint.constant = CGFloat(kInt64)
addAnimationToTopLogo(0.2)
}
}
func addAnimationToTopLogo(duration: NSTimeInterval) {
[UIView .animateWithDuration(duration, animations: {
self.view .layoutIfNeeded()
})]
}