SwiftUI如何将依赖按钮触发的动画改为自动播放并移除按钮
SwiftUI 文本动画自动触发修改方案
你可以通过onAppear生命周期修饰符实现动画自动触发,直接删除原有按钮代码即可,修改后的完整代码如下:
struct ContentView: View { @State var shortString = true var body: some View { VStack { Text(shortString ? "This is short." : "This is considerably longer.") .font(.title) .animation(.easeInOut(duration:1.0), value: shortString) } .onAppear { shortString.toggle() } } }
改动说明
- 完全删除了原有的按钮相关代码
- 新增
onAppear修饰符,会在视图首次渲染完成后自动执行状态切换逻辑,触发文本动画 - 补充了
animation修饰符的value参数,这是新版SwiftUI的规范写法,避免动画无差别触发
如果你需要实现循环往复的动画效果,可以在
onAppear中加入定时器实现自动重复切换:.onAppear { Timer.scheduledTimer(withTimeInterval: 1.5, repeats: true) { _ in shortString.toggle() } }
内容的提问来源于stack exchange,提问作者mrcreate
相关产品推荐
相关产品推荐

