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


You may also like

Leave a Reply