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

如何用SwiftUI的Materials创建类似麦当劳的模糊视图(无需第三方库)

用SwiftUI实现类似麦当劳标识的模糊视图

SwiftUI原生的material系列修饰符完全可以实现你要的这种毛玻璃模糊效果,不需要依赖第三方库,而且通常不需要额外设置透明度——因为material本身就集成了半透明和模糊的属性,不同类型的material已经预设了合适的透光度和模糊强度。

核心实现代码

直接通过background修饰符给承载标识的容器添加material背景即可,示例如下:

struct McdonaldsBlurDemo: View {
    var body: some View {
        // 模拟实际场景的背景层
        ZStack {
            Image("your-background-image")
                .resizable()
                .scaledToFill()
                .edgesIgnoringSafeArea(.all)
            
            // 带模糊背景的标识容器
            Text("McDonalds")
                .font(.system(size: 32, weight: .bold))
                .foregroundColor(.white)
                .padding(.horizontal, 24)
                .padding(.vertical, 12)
                .background(.ultraThinMaterial) // 切换不同material调整效果
                .cornerRadius(10)
        }
    }
}

不同material效果选择

根据你想要的模糊程度和背景透出效果,选择对应的material:

  • .ultraThinMaterial:最淡的模糊,背景透出最明显,适合需要轻量模糊的场景
  • .thinMaterial:比ultraThin稍浓,模糊感提升
  • .regularMaterial:标准模糊效果,平衡模糊度与背景可见性
  • .thickMaterial:模糊度更高,背景透出少,视觉更厚重
  • .ultraThickMaterial:最浓的模糊,几乎完全遮挡背景细节

微调透明度(可选)

如果原生material的透光度不符合预期,可以叠加opacity(_:)修饰符调整,比如:

.background(.regularMaterial.opacity(0.8))

不过多数情况下,原生material的默认参数已经能匹配这类品牌标识的模糊设计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:32:04