Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何控制UIView.animate效果(设置UIView.isHidden=false)_Ios_Swift - Fatal编程技术网

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

Ios 如何控制UIView.animate效果(设置UIView.isHidden=false),ios,swift,Ios,Swift,我正在尝试使用以下代码设置视图的动画: UIView.animate(withDuration: 1) { fooView.isHidden = false } 问题在于,视图的最终位置几乎位于屏幕底部,而当前动画使其从屏幕顶部显示并交叉到底部 我不喜欢它从底部出现,我怎么能控制它?谢谢当视图到达其最终位置时,您似乎希望取消隐藏视图,以便可以使用动画的完成块: UIView.animate(withDuration: 1, animations: {

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

UIView.animate(withDuration: 1) { 
     fooView.isHidden = false
}
问题在于,视图的最终位置几乎位于屏幕底部,而当前动画使其从屏幕顶部显示并交叉到底部


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

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

       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 {

            }
      })

ishiden
UIView
属性不可设置动画

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


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

上面的代码移动
fooView
的位置?您只是在更改可见性标志。因此,可能存在重复,在更改视图原点之前是否还有其他动画?完成中的标志不是成功,它是
完成的
,这是为了了解动画是否已完成或可能已取消。此外,在动画完成后取消隐藏视图,如果它在动画开始时隐藏,则alpha不会被设置动画。为什么要在视图处于隐藏状态时设置视图动画,然后在完成处理程序中将“隐藏”设置为false?其效果是暂停1秒(视图处于隐藏状态),然后视图会突然出现。对于第二段代码,假设视图首先处于隐藏状态。您需要在动画之前添加
fooView.ishiden=false
。@duncac他没有发布整个代码,我首先给出了两个解决方案,可能是他想执行动画,然后他想根据他的问题取消隐藏视图。“问题是视图的最终位置……”第二,我试图告诉他如何用动画隐藏。这和第一个答案不同。