You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI如何创建带淡绿色调的模糊背景?

如何在SwiftUI中给模糊背景添加淡绿色调?

你的代码里直接叠加.background(.green)和.background(.ultraThinMaterial)不会生效,因为SwiftUI中后添加的背景层会完全覆盖之前的——ultraThinMaterial作为上层背景,把下层的绿色完全挡住了。

下面是两种可行的解决方案:

方案1:用ZStack组合颜色层与模糊层

通过ZStack将淡绿色层放在模糊层下方,利用material的半透明特性透出绿色调,你可以通过调整颜色的opacity来控制绿色深浅:

import SwiftUI

struct DimBackgroundView: View {
    var body: some View {
        VStack {
            Spacer()
            
            VStack {
                Text("Dim background")
            }
            .frame(height: 350)
            .frame(maxWidth: .infinity)
            .background(
                ZStack {
                    // 底层淡绿色,可调整opacity控制浓度
                    Color.green.opacity(0.25)
                    // 上层模糊背景层
                    Color.ultraThinMaterial
                }
            )
            .cornerRadius(30)
        }
        .ignoresSafeArea()
    }
}

struct DimBackgroundView_Previews: PreviewProvider {
    static var previews: some View {
        DimBackgroundView()
    }
}

方案2:直接修改material的tint色调

SwiftUI的material背景支持通过tint()方法调整固有色调,这种方式更简洁,同样可以通过opacity控制绿色的明显程度:

import SwiftUI

struct DimBackgroundView: View {
    var body: some View {
        VStack {
            Spacer()
            
            VStack {
                Text("Dim background")
            }
            .frame(height: 350)
            .frame(maxWidth: .infinity)
            // 给模糊背景添加绿色调,调整opacity控制深浅
            .background(.ultraThinMaterial.tint(.green.opacity(0.3)))
            .cornerRadius(30)
        }
        .ignoresSafeArea()
    }
}

struct DimBackgroundView_Previews: PreviewProvider {
    static var previews: some View {
        DimBackgroundView()
    }
}

你可以根据预期效果,调整两种方案中的opacity值,直到得到满意的淡绿色模糊背景。

内容的提问来源于stack exchange,提问作者baohoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:03:02