代码之家  ›  专栏  ›  技术社区  ›  Addev

如何控制UIView。动画效果(设置UIView.isHidden=false)

  •  -1
  • Addev  · 技术社区  · 8 年前

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

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

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

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

    2 回复  |  直到 8 年前
        1
  •  2
  •   Duncan C    8 年前

    这个 isHidden UIView 属性不可设置动画。

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

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

        2
  •  1
  •   Salman Ghumsani    8 年前

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

           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 {
    
                }
          })