如何给uiview高度常量添加幻灯片动画?
How to add slide animation to uiview height constant?
我正在尝试创建这样的效果,当 scroll/swipe 向下时,视图控制器顶部的 UIView 会缩小,而底部会展开。
这是我添加到上视图的滑动手势的代码。
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
if(upperView.isHidden == false){
upperView.isHidden = true
self.heightUpperView.constant = 0
self.view.layoutIfNeeded()
}
else{
self.heightUpperView.constant = 372
upperView.isHidden = false
self.view.layoutIfNeeded()
}
}
它可以工作,但缺少动画。我想知道模仿滚动动画或粘性 header 动画的最佳方法是什么。
提前感谢您的帮助。
swift 3.0
你可以试试下面的一个。
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
if(upperView.isHidden == false) {
upperView.isHidden = true
heightUpperView.constant = 0
}
else{
upperView.isHidden = false
heightUpperView.constant = 372
}
UIView.animate(withDuration: 0.8) {
self.view.layoutIfNeeded()
}
}
self.view.layoutIfNeeded()
必须从 UIView.animateWith...
调用。这是您的代码示例:
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer)
{
// Set new constants first
if(upperView.isHidden == false)
{
upperView.isHidden = true
self.heightUpperView.constant = 0
}
else
{
self.heightUpperView.constant = 372
upperView.isHidden = false
}
// This line will animate all your constraint changes
UIView.animate(withDuration: 0.3)
{
self.view.layoutIfNeeded()
}
}
我正在尝试创建这样的效果,当 scroll/swipe 向下时,视图控制器顶部的 UIView 会缩小,而底部会展开。
这是我添加到上视图的滑动手势的代码。
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
if(upperView.isHidden == false){
upperView.isHidden = true
self.heightUpperView.constant = 0
self.view.layoutIfNeeded()
}
else{
self.heightUpperView.constant = 372
upperView.isHidden = false
self.view.layoutIfNeeded()
}
}
它可以工作,但缺少动画。我想知道模仿滚动动画或粘性 header 动画的最佳方法是什么。
提前感谢您的帮助。
swift 3.0
你可以试试下面的一个。
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
if(upperView.isHidden == false) {
upperView.isHidden = true
heightUpperView.constant = 0
}
else{
upperView.isHidden = false
heightUpperView.constant = 372
}
UIView.animate(withDuration: 0.8) {
self.view.layoutIfNeeded()
}
}
self.view.layoutIfNeeded()
必须从 UIView.animateWith...
调用。这是您的代码示例:
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer)
{
// Set new constants first
if(upperView.isHidden == false)
{
upperView.isHidden = true
self.heightUpperView.constant = 0
}
else
{
self.heightUpperView.constant = 372
upperView.isHidden = false
}
// This line will animate all your constraint changes
UIView.animate(withDuration: 0.3)
{
self.view.layoutIfNeeded()
}
}