Pixiv - KiraraShss
SwiftUI 学习笔记(一)基础语法
887 字
4 分钟
SwiftUI 学习笔记(一)基础语法
1 视图
1.1 基本框架
import SwiftUI
struct IntroView: View { var body: some View { // 从这里开始编写程序 Text("Hello, world.") }}
struct IntroView_Previews: PreviewProvider { // 这里是生成预览 static var previews: some View { VStack { IntroView() } }}1.2 引用视图
这相当于 HTML 里的 iframe 。
FriendDetailView()直接把其他视图的文件名当做一个函数放到 body 里,就可以内嵌这个页面了。
1.3 对于任意元素的视图布局
注意:修饰符既可以直接修饰单个元素,也可以修饰整个 Stack 。如果修饰一个 Stack ,那么这个 Stack 里面所有的相应元素都会被修饰。
1.3.1 设置长宽(框架修饰符)
1.3.1.1 直接设置
Rectangle() .frame(width: 150, height: 233)1.3.1.2 限制范围
.frame(minWidth: 100, maxHeight: 200).frame(maxWidth: 50).frame(maxWidth: .infinity, maxHeight: 10) // 最大宽度设置为无穷大,就会延伸到填满空间注意,对于一个图像,使用框架修饰符只会改变它周围空隙的大小。要改变图片的大小,需要加上 .resizable() 修饰符。
1.4 留白器
Spacer()1.5 (语法)三元运算符
和 C++ 类似,如下:
.frame(maxWidth: .infinity, alignment: isEditing ? .leading : .center)2 文本类
2.1 最简单的文本
Text("Hello, world.")2.2 用变量保存文本并显示
var t=Text("something")2.3 修改字体
2.3.1 基本操作
Text("friend") .font(/* add something here ... */)使用 .font() 修饰符,在里面添加类型。
2.3.2 大标题
Text("friend") .font(.largeTitle)2.3.3 标题
Text("ohh") .font(.title)2.3.4 说明文本
Text("friend") .font(.caption)2.3.5 略加粗
.frame(.headline)3 图像类
3.1 最简单的图像
Image("FriendAndGem")这将会使图片按原始大小显示在页面上。
3.2 使用系统内置的图标
// 龟兔赛跑Image(systemName: "tortoise")Image(systemName: "hare")3.3 大小可变的修饰符
Image("FriendAndGem") .resizable()然后就可以使用其它的各种修饰符来给这个图像变换大小了。现在这个图像被不按原比例地拉伸填充整个屏幕了。
3.4 适合屏幕的缩放
Image("FriendAndGem") .resizable() .scaledToFit()这个图像被按原始比例缩放至适合屏幕了。
3.5 缩放以填充
Image("FriendAndGem") .resizable() .scaledToFit()4 容器
4.1 水平堆栈
import SwiftUI
struct IntroView: View { var body: some View { Text("test.") HStack { Text("1") Text("2") Image("FriendAndGem") .resizable() .scaledToFit() } }}这里的 HStack 加在了 body 里面。
这样的所有元素都会水平排列。
4.2 垂直堆栈
struct FriendDetailView: View { var body: some View { VStack { /* something ... */ } }}4.3 Z 轴堆栈
ZStack {
}注意,在 ZStack 中,对于源代码从上到下的顺序,在真实的预览里是从下面到顶部。
4.4 Stack 的属性设定
4.4.1 对齐方式
可以指定该容器内部的元素的排列方式。默认左对齐。
4.4.1.1 垂直堆栈,只能设置水平对齐
VStack (alignment: .leading) { // 左对齐}VStack (alignment: .trailing) { // 右对齐}4.4.1.2 水平堆栈,只能设置垂直对齐
HStack (alignment: .top) { // 上方对齐}HStack (alignment: .bottom) { // 下方对齐}对于一个元素,还可以使用 frame 修饰符指定对齐方式:
Image(systemName: "books.vertical.fill") .frame(alignment: .trailing)4.4.2 内部元素间距
HStack(spacing: 20){
}对于某个特定的元素,可以为其上下左右设置间距:
.padding(.trailing, 20).padding(.leading, 20).padding(.top, 20).padding(.bottom, 20).padding(.horizontal, 20) // 四周全部5 图形类
5.1 基本几何体
5.1.1 圆形
Circle()5.1.2 胶囊形
Capsule()5.1.3 椭圆形
Ellipse()5.1.4 矩形
Rectangle()5.1.5 圆角矩形
RoundedRectangle(cornerRadius: 10) .foregroundColor(.brown)如上代码,设置了填充色、圆角程度等。
5.2 色彩/风格设置
5.2.1 填充色/前景色
Circle() .foregroundColor(.blue)Circle() .foregroundColor(.mint)Circle() .foregroundColor(.bannerPink)5.2.2 缩小
Circle() .inset(by: 40)5.2.3 填充背景
注意:该方法也适用于一些图标或文字。
Image(systemName: "books.vertical.fill") .background(Color.yellow)5.2.4 外框
.border(Color.black)5.2.5 位置偏移
.offset(x: -2, y: 20)支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
SwiftUI 学习笔记(一)基础语法
https://www.0x3f.foo/posts/the-post-5329/ 相关文章 智能推荐
1
深入浅出 gRPC:构建高性能微服务的现代 RPC 框架
笔记本 2026-02-12
2
迁站记:自旧域至新域,自 Jekyll 至 Astro
展览厅 记一次博客由旧域迁移至新域,并由 Jekyll 更易为 Astro 之经过与所感。
3
Chrome 将我的后台登录页标记为危险:一次 Safe Browsing 误判排查记录
实验室 记录一次后台登录页面被 Chrome 标记为 Social Engineering 的排查与修复全过程,以及如何避免再次误判。
4
使用AI开发纯血鸿蒙arkTS应用的进阶指南(VSCode+Copilot)
实验室 2026-02-16
5
【爽文】万律之主:从AK高考开始。
展览厅 2026-02-13
随机文章 随机推荐
无穷大?