SwiftUI 教程

SwiftUI 主页 SwiftUI 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI 安装和环境配置 SwiftUI 基本组件 SwiftUI 构建第一个应用程序

SwiftUI 视图

SwiftUI 视图 SwiftUI 自定义文本视图 SwiftUI 自定义图像视图 SwiftUI 堆栈

SwiftUI 绘制形状

SwiftUI 形状 SwiftUI 绘制线条 SwiftUI 绘制矩形 SwiftUI 绘制圆角矩形 SwiftUI 绘制三角形 SwiftUI 绘制圆形 SwiftUI 绘制星形 SwiftUI 绘制多边形 SwiftUI 绘制饼图 SwiftUI 使用内置形状

SwiftUI 文本

SwiftUI 文本视图 SwiftUI 文本输入和输出

SwiftUI 颜色

SwiftUI 颜色 SwiftUI 颜色选择器 SwiftUI 渐变 SwiftUI 调整颜色

SwiftUI 效果

SwiftUI 效果 SwiftUI 混合效果 SwiftUI BLur 效果 SwiftUI 阴影效果 SwiftUI 悬停效果

SwiftUI 动画

SwiftUI 动画 SwiftUI 创建动画 SwiftUI 创建显式动画 SwiftUI 多个动画 SwiftUI 过渡 SwiftUI 不对称过渡 SwiftUI 自定义过渡

SwiftUI 图像

SwiftUI 图像 SwiftUI 图像作为背景 SwiftUI 旋转图像 SwiftUI 媒体

SwiftUI 视图布局

SwiftUI 视图布局 SwiftUI 视图大小 SwiftUI 视图间距 SwiftUI 视图填充

SwiftUI UI 控件

SwiftUI UI 控件 SwiftUI 按钮 SwiftUI 复选框 SwiftUI 菜单栏 SwiftUI 工具栏 SwiftUI 搜索栏 SwiftUI 文本字段 SwiftUI 滑块 SwiftUI 切换 SwiftUI 选择器 SwiftUI 菜单

SwiftUI 列表 &表格

SwiftUI 列表 SwiftUI 静态列表 SwiftUI 动态列表 SwiftUI 自定义列表 SwiftUI 表格

SwiftUI 表单

SwiftUI 表单 SwiftUI 在部分中拆分表单

SwiftUI 事件处理

SwiftUI 事件处理 SwiftUI 手势 SwiftUI 剪贴板 SwiftUI 拖放 SwiftUI 焦点 SwiftUI 警报

SwiftUI 杂项

SwiftUI 容器 SwiftUI 导航 SwiftUI 通知 SwiftUI 跨平台 UI SwiftUI 数据 SwiftUI 可访问性

SwiftUI 框架集成

SwiftUI 框架集成 SwiftUI 与 UIKit 交互 SwiftUI 创建 macOS 应用

SwiftUI 有用资源

SwiftUI 有用资源 SwiftUI 讨论


SwiftUI - 模糊效果

SwiftUI 中的模糊效果在用户界面的指定视图、背景或图像上应用模糊滤镜。它通常用于增强视觉体验、创建深度、聚焦于指定组件或改善应用程序的用户体验。

SwiftUI 支持高斯模糊滤镜,这是一种使用称为高斯函数的数学函数的模糊滤镜。它通过对给定半径内的像素取平均值来平滑图像,从而创建模糊效果。在 SwiftUI 中,我们可以使用以下方式实现模糊效果 −

  • blur() 修饰符
  • 材质类型

blur() 修饰符

SwiftUI 提供了一个名为 blur() 的内置修饰符来实现模糊效果。此修饰符允许我们立即为任何视图添加自定义高斯模糊效果。它通常用于模糊背景以增强前景组件。

语法

以下是语法 −

func blur(radius: CGFloat, opaque: Bool = false)->some View

参数

此修饰符采用以下参数 −

  • radius:它表示模糊的径向大小。
  • opaque:如果此参数的值为 true,则允许我们创建不透明模糊。否则,我们只能使用透明度。它是一个可选参数。

示例

以下 SwiftUI 程序用于模糊图像视图。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack{
         Text("Original Image:").font(.largeTitle)
         Image("wallpaper").resizable()
            .frame(width: 300, height: 300)
         Text("Blurred Image:").font(.largeTitle)
         Image("wallpaper")
            .resizable()
            .frame(width: 300, height: 300)
            .blur(radius: 4.5)
      }
   }
}

#Preview {
   ContentView()
}

输出

模糊效果

材质类型

除了 blur() 修饰符之外,SwiftUI 还为我们提供了另一种创建模糊效果的方法,即 Material 类型。Material 类型是具有不同级别半透明效果的预定义模糊效果的集合。使用这些,我们可以实现深度感。

它们允许我们在不影响前景元素的情况下模糊背景。它们不是视图,但它们会在视图和其背景之间创建一个半透明层。它们在 Human InterfaceGuidelines 中定义。Material 类型通常与 background() 或 overlay() 修饰符一起使用。

SwiftUI 支持以下类型的 Material 类型 −

  • .regularMaterial: 用于应用常规材质效果。
  • .thinMaterial: 用于应用较轻的材质效果。
  • .ultraThinMaterial: 用于应用最轻的材质效果。
  • .thickMaterial: 用于应用较厚的材质效果。
  • .ultraThickMaterial: 用于应用最厚的材质效果。
  • .bar: 用于为栏和工具栏应用合适的材质效果。

语法

以下是语法 −

.backgound(.thinMaterial)

示例

以下 SwiftUI 程序用于使用 Material Type 模糊当前视图。

import SwiftUI

struct ContentView: View {
   var body: some View {
      ZStack {
         Rectangle().fill(.mint)
         VStack{
            Text("Thin Material")
            Rectangle()
               .frame(width: 250, height: 100)
               .background(.thinMaterial)
            Text("Thick Material")
            Rectangle()
               .frame(width: 250, height: 100)
               .background(.thickMaterial)
            
            Text("Ultra Thin Material")
            Rectangle()
               .frame(width: 250, height: 100)
               .background(.ultraThinMaterial)
            
            Text("Thick Material")
            Rectangle()
               .frame(width: 250, height: 100)
               .background(.ultraThickMaterial)
            
            Text("Regular Material")
            Rectangle()
               .frame(width: 250, height: 100)
               .background(.regularMaterial)
         }
      }      
   }
}
#Preview {
   ContentView()
}

输出

模糊效果