SwiftUI - 效果



效果是指应用于视图的视觉修改或转换,用于自定义视图的外观或行为。它们只增强视图的视觉外观,不会影响布局,因为它们不允许修改视图的布局。

使用这些效果,我们可以将各种效果(如阴影、模糊、旋转、饱和度、色相等)应用于任何视图或组件,例如文本、图像、形状、按钮等。它们通过提高内容的可读性或创建交互式组件来增强用户体验。

在 SwiftUI 中应用效果

SwiftUI 支持各种预定义的修饰符,例如阴影、悬停、模糊等,可用于增强视图的外观。因此,只需使用这些修饰符,我们就可以将效果应用于视图。我们可以使用点运算符直接使用这些修饰符,例如:

Text("TutorialsPoint").blur(radius:12)

示例 1

下面的 SwiftUI 程序用于在文本视图上应用模糊效果。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack {            
         // Without any effect
         Text("TutorialsPoint").font(.largeTitle).foregroundStyle(.green)
            
         // With blur effect
         Text("TutorialsPoint")
            .font(.largeTitle)
            .foregroundStyle(.green)
            .blur(radius: 4)
      }.padding()
   }
}
#Preview {
   ContentView()
}

输出

Effects

示例 2

下面的 SwiftUI 程序用于在文本视图上应用多个效果。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack {
         // Without any effect
         Text("TutorialsPoint").font(.largeTitle).foregroundStyle(.green)
            
         // With multiple effects
         Text("TutorialsPoint")
            .foregroundStyle(.green)
            .padding(20)
            .shadow(radius: 5)
            .rotationEffect(.degrees(10))
            .scaleEffect(2.3)
      }.padding()
   }
}
#Preview {
    ContentView()
}

输出

Effects

SwiftUI 中的效果类型

SwiftUI 支持以下类型的效果:

序号 效果 描述
1 scaleEffect() 用于增加或减小视图的大小(水平和垂直)。
2 rotationEffect() 用于在二维平面中围绕给定点旋转视图。
3 transformEffect() 用于将仿射变换应用于给定视图。仿射变换包括视图的旋转、缩放、平移或倾斜。
4 blur() 用于将高斯模糊应用于指定的视图。
5 shadow() 用于在指定的视图上应用阴影效果。
6 blendMode() 用于混合两个重叠的视图。
7 hoverEffect() 用于在指定的视图上应用悬停效果。
8 colorEffect() 用于将滤镜效果应用于每个像素的颜色。
9 distortionEffect() 用于将几何失真效果应用于给定视图的每个像素。
10 layerEffect() 用于在视图的光栅层上应用组合滤镜。
11 visualEffect() 通过使用几何代理访问视图的布局详细信息来应用可动画的视觉效果。
12 adjustColorEffect() 用于将基本的颜色效果应用于视图,例如饱和度、亮度、对比度、色相旋转和颜色相乘。
广告