如何控制UIView.animate effect(设置UIView.isHidden=false)



我正在尝试使用以下代码对视图进行动画处理:

UIView.animate(withDuration: 1) { 
     fooView.isHidden = false
}

问题是视图的最终位置几乎在屏幕底部,而当前动画使其从屏幕顶部出现并交叉到底部。

不喜欢它从底部出现,我怎么能控制它?谢谢

isHidden UIView 属性不可动画化。

您需要做的是在动画开始之前将 isHidden 设置为 false,将 alpha 设置为 0,并将 alpha 属性动画化为非零值。这将导致视图在动画过程中淡入。

如果在动画持续时间内isHidden为 true,则视图将在整个持续时间内隐藏。

似乎

您想在视图到达最终位置时取消隐藏视图,以便您可以使用动画的完成块:

       UIView.animate(withDuration: 1, animations: { 
           //Animation
       }, completion: { (finished) in
              if finished {
                  fooView.isHidden = false  
              }
       })

另外,如果要执行带有动画的隐藏取消隐藏,则可以使用它

      fooView.alpha = 0.0
      UIView.animate(withDuration: 1, animations: {
            fooView.alpha = 1.0
      }, completion: { (finished) in
            if finished {
            }
      })

最新更新