简体   繁体   中英

swift animateWithDuration animation not right

I am hiding my navigation bar and a UIView under it that acts as a extension bar to it when I scroll my page.

My app is built like:

VC that holds a container view with an embedded table view.

From the table view I have delegates that notify VC1 once a user scrolls up or down.

My problem now is that the animation dont looks that good. What I am trying to do is to animate the extension bar to animate up or down with a fade in or fade out effect as well. When that occurs I also update the top contraint on my container view so that the table view will fill the whole screen. (I am not sure if I use layoutneeded() right or if something else should be used when updating constraints)

My code:

func ContainerTableViewControllerScrolledUp(controller: ContainerTableViewController) {
        self.navigationController?.setNavigationBarHidden(false, animated: true)
        println("UP")
        UIView.animateWithDuration(
            1.5,
            delay: 0,
            usingSpringWithDamping: 0.7,
            initialSpringVelocity: 0.5,
            options: nil,
            animations: {
                self.extensionV.alpha = 1
                self.tableVConst.constant = 0
            },  completion: { finished in
                self.view.layoutIfNeeded()
            }
        )
    }

func ContainerTableViewControllerScrolledDown(controller:ContainerTableViewController) {
    self.navigationController?.setNavigationBarHidden(true, animated: true)
    println("DOWN")
    UIView.animateWithDuration(
        1.5,
        delay: 0,
        usingSpringWithDamping: 0.7,
        initialSpringVelocity: 0.5,
        options: nil,
        animations: {
            self.extensionV.frame.origin.y = CGFloat(-10)
            self.tableVConst.constant = -41
            self.extensionV.alpha = 0
        }, completion: { finished in
            self.view.layoutIfNeeded()
        }
    )
}

extensionV is the extension view tableVConst is the top constraint for my container view that holds my table view

So how should I edit my code in order to get the extension view to animate up/down with a fade in/fade out effect?

与其在完成块中调用self.view.layoutIfNeeded()self.view.layoutIfNeeded()在返回之前在最后一行的动画块内调用它。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM