SwiftUI:通过更新变量来动画波浪不起作用
Posted
技术标签:
【中文标题】SwiftUI:通过更新变量来动画波浪不起作用【英文标题】:SwiftUI: Animating wave by updating variable not working 【发布时间】:2020-10-28 15:44:17 【问题描述】:我对 SwiftUI 比较陌生,我想通过使用 Button 更改变量 caffeineContent 来更新波函数(表示咖啡的饱满程度)。
如果我打印它,值会发生变化,但 Content-View 保持不变并且没有更新。 我想过强制更新 UI,但这个解决方案对我来说似乎不合适。
信息:
caffeineContent = 50 --> 咖啡已满
caffeineContent = 0 --> 咖啡是空的
var caffeineContent: Int = 10
struct ContentView: View
@State private var showModal = false
@State private var percent = caffeineContent
var body: some View
ZStack
Color(red: 0.5, green: 0.4, blue: 0.35).ignoresSafeArea()
[…]
CircleWaveView(percent: Int(caffeineContent)).padding(EdgeInsets(top: 90, leading: 65, bottom: 100, trailing: 79))
[…]
Button(action:
caffeineContent = caffeineContent+5
print(caffeineContent)
, label:
Text("Add caffeine content").font(.largeTitle)
[…]
【问题讨论】:
这可能对***.com/a/63412977/12299030 和***.com/a/64347221/12299030 有帮助。 【参考方案1】:谢谢@Asperi!这是一个解决方案,我现在知道了。
struct ContentView: View
@State private var showModal = false
**@State private var percent: Int = 50**
[...]
CircleWaveView(percent: **Int(self.percent)**)
.padding(EdgeInsets(top: 90, leading: 65, bottom: 100, trailing: 79))
[...]
Button(action:
**self.percent -= 5**
, label:
Text("Add caffeine content").font(.largeTitle)
)
[...]
【讨论】:
以上是关于SwiftUI:通过更新变量来动画波浪不起作用的主要内容,如果未能解决你的问题,请参考以下文章
通过更改 SwiftUI 中的 @State 变量来刷新视图不起作用
SwiftUI - 过渡动画在 GeoReader 中不起作用?
iOS 15 SwiftUI 3 Picker 绑定在更改@State 值后不起作用