MST
星途 面试题库

面试题:SwiftUI中如何实现动态切换Image与Color资源

在SwiftUI应用中,要求实现一个功能:当用户点击一个按钮时,`Image` 资源从一张图片切换到另一张图片,同时与之相关的背景 `Color` 也相应切换。请描述实现该功能的思路,并给出关键代码片段。
31.8万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 首先,在视图结构体中定义两个 Image 资源和两个 Color,并使用一个布尔类型的状态变量来跟踪当前显示的图片和颜色。
  2. 创建一个按钮,在按钮的点击动作中修改状态变量的值。
  3. 使用 if - else 或者 ternary operator(三元运算符)根据状态变量的值来决定显示哪张图片和哪种颜色。

关键代码片段

import SwiftUI

struct ContentView: View {
    // 定义状态变量
    @State private var isFirstImage = true
    
    var body: some View {
        VStack {
            // 根据状态变量显示不同图片
            if isFirstImage {
                Image("firstImage")
                    .resizable()
                    .scaledToFit()
            } else {
                Image("secondImage")
                    .resizable()
                    .scaledToFit()
            }
            
            Button("切换图片和颜色") {
                // 切换状态
                isFirstImage.toggle()
            }
        }
        .background(
            // 根据状态变量显示不同背景颜色
            isFirstImage ? Color.blue : Color.green
        )
    }
}

请确保项目的资源文件夹中包含名为 firstImagesecondImage 的图片资源。