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 提供各种类型的预定义、系统和自定义颜色,包括浅色和深色。

我们还可以借助各种修饰符(如不透明度、渐变等)来修改它们。我们还可以从另一种颜色(如 UIKit、AppKit Core Graphics 等)中获取颜色。在本章中,我们将学习如何在视图或组件中使用颜色、如何创建自定义颜色等等。

SwiftUI 中的颜色结构

SwiftUI 中的颜色结构用于创建各种颜色实例。这些颜色实例可以通过使用 RGB、HSL、灰度分量值或标准颜色属性进行修改。

颜色结构的实例可以用作 background()、fill()、foregroundStyle() 等的参数,以更改给定形状或背景的颜色。我们还可以在不透明度参数的帮助下调整所有颜色的不透明度。此参数的值可以在 0 到 1 之间变化。

语法

以下是语法 −

let color = Color()

示例

以下 SwiftUI 程序在给定的形状中添加颜色。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack{
         Rectangle()
            .fill(Color.green)
            .frame(width: 150, height: 200)
         Circle()
            .fill(.red)
            .frame(width: 150, height: 200)
      }
   }
}

#Preview {
   ContentView()
}

输出

Color

SwiftUI 中的系统颜色

SwiftUI 支持各种类型的默认系统颜色。使用这些颜色,我们可以更改 macOS、tvOS、watchOS 等用户界面的外观。

这些颜色通常在 Color 结构中定义,它们在较亮和较暗的上下文中都可用。这些颜色是动态的,它们可以根据标准 UI 组件的要求在较亮或较暗的上下文中自动调整。

SwiftUI 支持以下类型的系统颜色 −

  • Color.red
  • Color.blue
  • Color.green
  • Color.yellow
  • Color.orange
  • Color.purple
  • Color.pink
  • Color.primary
  • Color.accentColor
  • Color.secondary
  • Color.black
  • Color.indigo
  • Color.teal
  • Color.cyan
  • Color.mint
  • Color.white
  • Color.gray
  • Color.clear
  • Color(.systemRed)
  • Color(.systemBlue)
  • Color(.systemGreen)
  • Color(.systemYellow)
  • Color(.systemOrange)
  • Color(.systemPink)
  • Color(.systemPurple)
  • Color(.systemTeal)
  • Color(.systemGray)

语法

以下是语法 −

.fill(Color.blue)

示例

以下 SwiftUI 程序用于将系统颜色应用于给定的形状。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack{
         Capsule()
            .fill(.yellow)
            .frame(width: 150, height: 200)
            .overlay(Text("SwiftUI"))
         Capsule()
            .fill(.secondary)
            .frame(width: 140, height: 200)
            .overlay(Text("SwiftUI").foregroundStyle(.white))
      }
   }
}
#Preview {
   ContentView()
}

输出

Color

SwiftUI 中的自定义颜色

除了预定义颜色外,SwiftUI 还允许我们使用以下任何一种方法创建自己的颜色−

  • 自定义颜色
  • 颜色集

自定义颜色

在 SwiftUI 中,我们可以使用各种组件(如 RGB(红色、绿色、蓝色)、HSL(色调、饱和度、亮度)或灰度)创建自己的颜色。

  • RGB:它用于通过指定用于创建该颜色的红色、绿色和蓝色的数量来创建颜色。这些值可以在 0 到 1 之间变化。0 表示强度为零的颜色,1 表示强度为全的颜色。
  • HSB: 它用于通过指定色调、饱和度和亮度来创建颜色。这些参数的值应在 0 到 1 之间。
  • 灰度: 灰度颜色是仅由灰色阴影组成的颜色,意味着它们没有任何色调或饱和度,并且从黑色到白色变化。我们可以通过在 0 和 1 之间调整白色参数的值来创建灰度颜色。

语法

以下是 RGB、HSL 和灰度 − 的语法

let color1 = Color(red:Double, green:Double, blue:Double)
let color2 = Color(hue:Double, saturation:Double, brightness:Double)
let color3 = Color(white:Double)

示例

以下 SwiftUI 程序用于使用 RGB、HSB 和灰度创建自定义颜色。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack{
         Capsule()
            // 使用 HSB 创建自定义颜色
            .fill(Color(hue: 0.2, saturation: 0.1, brightness: 0.3, opacity: 0.9))
            .frame(width: 150, height: 200)
         Capsule()
            // 使用 RGB 创建自定义颜色
            .fill(Color(red:0.2, green:0.1, blue:0.9))
            .frame(width: 140, height: 200)
         Capsule()
            // 使用灰度创建自定义颜色
            .fill(Color(white: 0.5))
            .frame(width: 140, height: 200)         
      }
   }
}
#Preview {
   ContentView()
}

输出

Color

颜色集

我们还可以通过在 Assets.xcassets 中添加颜色集来创建自定义颜色。通过在 Assets.xcassets 中添加颜色,我们可以在该项目中的所有视图中使用该颜色。

在这里,我们还可以借助 RGB 值、十六进制代码或系统颜色指定该颜色的明暗模式。

要在资产中添加颜色,请按照以下步骤操作 −

步骤 1:打开 Assets。

Color

步骤 2:右键单击屏幕并选择"新颜色集"。

Color

步骤 3:设置颜色集的名称,然后通过设置 RGB 和不透明度值来添加新颜色。

Color

步骤 4:现在,您可以在项目中使用此颜色了。

Color("ColorName")

示例

以下 SwiftUI 程序用于使用颜色集创建自定义颜色。

import SwiftUI

struct ContentView: View {
   var body: some View {
      VStack{
         Capsule().fill(Color("MyColor")).frame(width: 150, height: 200)
      }
   }
}

#Preview {
   ContentView()
}

输出

Color

在 SwiftUI 中使用带有修饰符的颜色

在 SwiftUI 中,我们可以使用带有各种修饰符的颜色来更改指定组件、文本或视图的颜色。以下是使用 color− 的修饰符

  • .backgound(.blue):此修饰符使用颜色来更改视图的背景颜色。
  • .foregroundStyle(.pink):它使用颜色来更改前景元素的颜色。
  • .shadow(color:.pink):它用于更改阴影的颜色。
  • .fill(.red):它用于用给定的颜色填充形状。
  • .stroke(Color.yellow):它用于更改给定形状的边界颜色。