gpt4 book ai didi

swiftui - 带有 bool 标志的淡入/淡出动画

转载 作者:行者123 更新时间:2023-12-03 08:21:26 24 4
gpt4 key购买 nike

我正在尝试在 SwiftUI 中使用淡入/淡出动画实现一个简单的“点击切换 UI 的可见性”。下面的代码按照我的预期设置了 Text 元素的淡入效果,但当 isVisible 变为 false 时,它​​会立即隐藏 Text 元素。

我想了解为什么这段代码不起作用,以及如何以最自然的方式修复它。

import SwiftUI

struct ContentView: View {
@State var isVisible = true
var body: some View {
ZStack {
Rectangle()
.foregroundColor(.blue)
.gesture(TapGesture(count: 1).onEnded {
withAnimation(.easeInOut(duration: 1.0)) {
isVisible.toggle()
}
})
if isVisible {
Text("Tap me!")
}
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

我在 Big Sur 上使用 Xcode 12.5,我的 iPhone 运行的是 iOS 14.5.1。

最佳答案

感谢 Erik Philips,这就是答案。

import SwiftUI

struct ContentView: View {
@State var isVisible = true
var body: some View {
ZStack {
Rectangle()
.zIndex(1)
.foregroundColor(.blue)
.gesture(TapGesture(count: 1).onEnded {
withAnimation(.easeInOut(duration: 1.0)) {
isVisible.toggle()
}
})
if isVisible {
Text("Tap me!")
.zIndex(2)
}
}
}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

关于swiftui - 带有 bool 标志的淡入/淡出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67746436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com