【发布时间】:2022-01-23 12:25:52
【问题描述】:
在 SwiftUI 中,我已经使用 animation(_:) 修饰符成功地在视图首次绘制到屏幕时制作了一个 Button 动画,该修饰符在 macOS 12 中已被弃用。
我尝试用新的 animation(_:value:) 修饰符替换它,但这次什么也没发生:
所以这是行不通的:
struct ContentView: View {
@State var isOn = false
var body: some View {
Button("Press me") {
isOn.toggle()
}
.animation(.easeIn, value: isOn)
.frame(width: 300, height: 400)
}
}
但这是有效的。为什么?
struct ContentView: View {
var body: some View {
Button("Press me") {
}
.animation(.easeIn)
.frame(width: 300, height: 400)
}
}
第二个示例在视图显示时为按钮设置动画,而第一个示例不执行任何操作
【问题讨论】:
-
需要最小的可重现示例。
-
@Asperi 你可以用这个:github.com/stoiandan/SweetIRC/blob/main/SweetIRC/…
-
当视图出现时你是否改变
showChat?显式动画监视 init 中包含的值的变化。 -
@Yrb 当按钮切换
showChat时,整个视图被关闭 -
请发帖Minimal, Reproducible Example。不鼓励使用外部链接,我们不需要浏览您的整个应用程序。只需制作一个显示您的问题的最小示例即可。