- SwiftUI 教程
- SwiftUI - 首页
- SwiftUI - 概述
- SwiftUI vs 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 - 模糊效果
- 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 - 讨论
SwiftUI - 视图布局
视图布局是 SwiftUI 最重要和最强大的功能。布局负责如何在应用程序的用户界面中排列和显示多个视图。众所周知,SwiftUI 使用声明式语法,因此我们只需要描述 UI 的布局,框架将负责渲染。
SwiftUI 提供了各种预定义布局以及自定义布局,通过这些布局我们可以创建布局。它还提供各种预定义修饰符,可以帮助我们增强 UI 中布局的外观。
SwiftUI 中的布局类型
SwiftUI 支持各种内置布局,使用它们我们可以轻松地为应用程序的用户界面创建布局。我们还可以将它们混合搭配以创建应用程序的新布局。以下是 SwiftUI 支持的一些预定义布局:
堆叠布局
这是 SwiftUI 中最常用的布局。它使用 HStack、VStack 和 ZStack 将子视图水平、垂直或分层排列。HStack 将视图水平排列,VStack 将视图垂直排列,而 ZStack 将视图分层排列,这意味着一个视图位于另一个视图的顶部。
语法以下是语法:
// For VStack VStack{ //code } // For HStack HStack{ //code } // For ZStack ZStack{ //code }
示例
以下 SwiftUI 程序使用堆叠布局:
import SwiftUI struct ContentView: View { var body: some View { VStack{ Text("Hello Swift") Text("Hello Swift") } HStack{ Text("Learn Swift") Text("Learn Swift") } ZStack{ Rectangle() .frame(width: 100, height: 70) Text("Swift").font(.title2).foregroundStyle(.white) } } } #Preview { ContentView() }
以下是输出:
网格布局
网格布局是一种特殊的容器类型,它使用 GridRow 结构在二维布局中排列指定的视图。例如,第一个视图将显示在网格的第一列中,第二个视图将显示在网格的第二列中,依此类推。网格布局的工作方式与将 HStack 实例包装在 VStack 实例中的方式非常相似。
语法以下是语法:
Grid{ GridRow{ //code } }
示例
以下 SwiftUI 程序创建网格布局。
import SwiftUI struct ContentView: View { var body: some View { @State var result : String = "" Text("Calculator").font(.title) TextField("Enter your number", text: $result) Grid{ GridRow{ Text("AC") Text("+/-") Text("%") Text("/") } GridRow{ Text("7") Text("8") Text("9") Text("x") } GridRow{ Text("4") Text("5") Text("6") Text("-") } GridRow{ Text("1") Text("2") Text("3") Text("+") } GridRow{ Text("0") Text(".") Text("=") } } } } #Preview { ContentView() }
以下是输出:
列表布局
列表布局用于在垂直可滚动的列表中排列多个视图,其中每个子视图都位于列表的每一行中。它可以很好地与静态和动态视图一起工作,并且还具有各种 UI 控件,例如按钮、开关、步进器等,使列表更具交互性。
语法以下是语法:
List{ //code }
示例
以下 SwiftUI 程序创建列表布局。
import SwiftUI struct ContentView: View { @State private var value = false var body: some View { VStack{ Text("Setting").font(.title) List{ Text("Wi-Fi") Text("Mobile Network") Toggle("Bluetooth", isOn: $value) Text("Connection and Sharing") } } } } #Preview { ContentView() }
以下是输出:
表单布局
表单布局用于创建结构化的输入表单。它将各种字段和标签组合在一起,并将它们显示在垂直可滚动的表单中。它用于存储用户提供的数据。
语法以下是语法:
Form{ //code }
示例
以下 SwiftUI 程序创建表单布局。
import SwiftUI struct ContentView: View { @State private var fname: String = "" @State private var lname: String = "" @State private var branch: String = "" var body: some View { NavigationStack{ Form{ TextField("First Name", text:$fname) TextField("Last Name", text:$lname) TextField("Branch", text:$branch) Button("Submit"){ print("Form is submitted") } }.navigationTitle("User Form") } } } #Preview { ContentView() }
以下是输出:
分组布局
分组布局用于在组中显示多个视图,而不会影响 UI 的布局。当我们想要将修饰符应用于多个视图时,或者可以用来创建层次结构时,它通常使用。
语法以下是语法:
Group{ //code }
示例
以下 SwiftUI 程序创建分组布局。
import SwiftUI struct ContentView: View { var body: some View { Group{ Text("Notes 1") .font(.title2) Text("Notes 2") .font(.title2) Text("Notes 3") .font(.title2) } .background(.gray) .foregroundStyle(.white) } } #Preview { ContentView() }
以下是输出: