ios - 为什么这个简单的不透明动画在 SwiftUI 中不起作用?

标签 ios swift animation swiftui transition

我试图为文本制作一个简单的淡入淡出动画,但是当我尝试这样做时,它不起作用。不透明度没有平滑的增加和减少,它只是跳到完全并且没有不透明度。

struct Test: View {
    @State var showing = false
    
    var body: some View {
        VStack {
            Button("Toggle") {
                self.showing.toggle()
            }
            
            if showing {
                Text("Hello")
                    .transition(.opacity)
                    .animation(.easeInOut)
            }
        }
    }
}
有谁知道为什么这不能按预期工作?当从 View 层次结构中插入和删除文本时,我期望这能够在淡出过渡中平滑淡入淡出。

最佳答案

showing 时,没有人可以制作动画了是 false .而是使用以下内容:

VStack {
    if showing {
        Text("Hello")
            .transition(.opacity)
    }
}.animation(.easeInOut)   // << here !!

关于ios - 为什么这个简单的不透明动画在 SwiftUI 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63187785/

相关文章:

javascript - 使用 JavaScript 为 DIV 设置动画会在 Chrome 上呈现工件

ios - 动画与 swift

ios - NSDate - 添加天数不会改变年份值

iphone - IOS UiView动画在ios 5和ios 6设备上产生不同的效果

swift - 如何快速获取连续触摸的初始位置

ios - Swift,来自 AnyObject 的 Self

ios - 在另一个函数中快速包装函数

html - 通过 UIWebView 从网页中在 Safari 中打开链接

ios - 在后台获取Core Data对象和tableView.reloadData()

javascript - 使用 jQuery 和 CSS 重新创建动画