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