swift - SwiftUI 中的动画绑定
问题描述
我有以下代码部分显示或隐藏Test
视图,具体取决于Binding<Bool>
. testVisible.toggle()
我可以将调用包装在 awithAnimation
中,但是,理想情况下,我想确保visible
绑定始终是动画的,即使在没有 a 的情况下调用也是如此withAnimation
。如何确保无论何时visible
更改绑定,更改都是动画的?
struct ContentView: View {
@State var testVisible: Bool = true
var body: some View {
ZStack {
Color.white
.onTapGesture {
testVisible.toggle()
}
Test(visible: $testVisible)
}
}
}
struct Test: View {
@Binding var visible: Bool
var body: some View {
Text("Test")
.opacity(visible ? 0.5 : 0)
}
}
解决方案
.animation()
向Text
视图添加修饰符:
struct Test: View {
@Binding var visible: Bool
var body: some View {
Text("Test")
.opacity(visible ? 0.5 : 0)
.animation(.linear(duration: 0.5))
}
}
推荐阅读
- c# - 如何在使用 nlog 中记录无限字符消息
- c++ - 如何替换双端队列对象中的元素?
- python - 有什么方法可以使用 discord.py(self-bot)自动兑换 Nitro 礼物?
- swift - 从 AppDelegate 移动通知功能的最佳方式
- r - 跟踪每集的首次发生率
- python - SQLite3 帮助,将变量保存到数据库中
- android-studio - 使用 Android Studio 将 Flutter 项目上传到 Github
- c++ - std::memcpy vs std::copy_n 用于遗留 c 结构
- wordpress - 如何禁用 TLS 1.0 和 1.1 以在 Apache 中为 Wordpress Bitnami Amazon-Ligthsail 实例仅启用 TLS 1.2 和 TLS 1.3?
- batch-file - 如何制作自定位批处理文件