我试图改变Text组件的背景色,只要满足给定条件,在本例中,当numberOfTaps = 3时,我可以通过在.background属性调用中设置条件来实现

我想做的是用一个动画来改变背景,没什么特别的,大概.easeInOut个就行了;我该怎么做?

import SwiftUI

struct ContentView: View {
    @State private var numberOfTaps = 0
    
    var body: some View {
        VStack {
            Button("Up") {
                numberOfTaps += 1
            }
            
            Text("\(numberOfTaps)")
                .padding()
                .background(numberOfTaps == 3 ? Color.blue : Color.green)
            
            Button("Down") {
                numberOfTaps -= 1
            }
        }
    }
}

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

以下是当前用户界面的示例:

enter image description here

推荐答案

我已经改变了你的身体.让我们try 一下easeInOut动画:-

var body: some View {
        VStack {
            Button {
                numberOfTaps += 1
                color = (numberOfTaps == 3) ? Color.blue: Color.green
            } label: {
                Text("Up")
            }
            Text("\(numberOfTaps)")
                .padding()
                .background(color.animation(.easeInOut))
            
            Button {
                numberOfTaps -= 1
                color = (numberOfTaps == 3) ? Color.blue: Color.green
            } label: {
                Text("Down")
            }
        }
    }

注意:-您可以使用不同的动画属性进行播放,例如easeIn,

Ios相关问答推荐

OSLog(Logger)通过简单的字符串插值给出错误

在SWIFT中将圆角+透明背景从导入视频(.mp4)添加到导出视频(.mov)

SwiftUI绑定到特定的一个或多个枚举 case

快速相机放大手势不能正常工作

为什么iOS委派在KMM中不能正常工作?

带有故事板的Xcode 15 UIKit视图可以与#Preview宏一起使用吗?

如何在SwiftUI中基于嵌套视图中的状态动态显示外部视图的内容?

如何使用 SwiftData 从列表中删除子项目?

WatchConnectivity - 从手表配套应用程序在 iOS 设备上启动 AVPlayer

SwiftUI 故障/错误 - 在 LazyVStack 和 ScrollView 中使用 AVPlayer 时状态栏不显示

UIView 倒置旋转时的zoom 问题

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

AppCenter 错误:/usr/bin/xcodebuild 失败,返回码:65

迁移到 UIKit 生命周期的应用程序不会调用 SceneDelegate

如何在 Swift 上的 sendSynchronousRequest 中判断 Response.statusCode

如何使用 swift 显示 .svg 图像

将自定义对象保存到 NSUserDefaults

文本未包含在 swift UI 中

iOS SDK - 以编程方式生成 PDF 文件

如何用 CAShapeLayer 和 UIBezierPath 画一个光滑的圆?