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

时间:2017-10-31 14:33:29

标签: ios swift

我尝试使用以下代码为我的视图设置动画:

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

问题是视图的最终位置几乎位于屏幕的底部,目前动画正从屏幕顶部显示并向下移动。

我不喜欢它从底部出现,我该如何控制它?感谢

2 个答案:

答案 0 :(得分:2)

isHidden UIView属性不可动画。

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

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

答案 1 :(得分:1)

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

       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 {

            }
      })