当我滚动页面时,我隐藏了我的导航栏和其下的UIView作为扩展栏。
我的应用程序构建如下:
包含带有嵌入式表视图的容器视图的VC。
从表格视图中,我有代表在用户向上或向下滚动时通知VC1。
我现在的问题是动画看起来不那么好。我要做的是为扩展栏设置动画,以使用淡入或淡出效果向上或向下设置动画。当发生这种情况时,我还会更新容器视图上的顶部约束,以便表视图将填满整个屏幕。 (我不确定我是否正确使用layoutneeded()或者在更新约束时应该使用其他东西)
我的代码:
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 是扩展程序视图 tableVConst 是包含我的表格视图的容器视图的顶部约束
那么我应该如何编辑我的代码以使扩展视图以淡入/淡出效果进行上/下动画制作?
答案 0 :(得分:0)
不要在完成块中调用self.view.layoutIfNeeded()
,而是在返回之前尝试在最后一行的动画块内调用它。