首页 > 解决方案 > 我将如何为bringSubviewToFront 编写 UIView 淡入动画

问题描述

我正在尝试向我的函数添加 UIView 动画/淡入效果: self.view.bringSubview(toFront: self.webView)

我试过以编程方式实现它,但 UIView 没有动画;相反,它只是立即显示它而没有淡入效果:

UIView.animate(withDuration: 1, animations: {
            self.view.bringSubview(toFront: self.webView)
        }, completion: nil)

我将如何为bringSubview(_: )andsendSubview(_ : )函数实现动画?我试过到处找,但似乎没有人知道答案。

标签: iosswiftuiviewuiviewanimationxcode10

解决方案


你不能这样用UIView.animate。它仅适用于某些属性。在这种情况下,您需要为alpha属性设置动画。

在开始制作动画之前,将视图设置alpha为 0,然后将其置于前面:

self.webView.alpha = 0
self.view.bringSubview(toFront: self.webView)
// After that you animate the alpha:
UIView.animate(withDuration: 1, animations: {
    self.webView.alpha = 1
}, completion: nil)

推荐阅读