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他没有发布整个代码,我首先给出了两个解决方案,可能是他想执行动画,然后他想根据他的问题取消隐藏视图。“问题是视图的最终位置……”第二,我试图告诉他如何用动画隐藏。这和第一个答案不同。