Swift UI 完全开发(1-2)第一个程序与Text文字控件

Swift UI 完全开发(1-2)

本文对应《Swift UI 完全开发》原书第1章至第2章

✅表示已更新
P.S. 文章内容为个人阅读后认为的重点,顺序与原书存在不一致,有任何疑问欢迎评论。

1 第一个SwiftUI项目

SwiftUI —— 声明式语法用户界面框架

1.1 创建第一个SwiftUI项目

  1. 下载后打开Xcode,在Xcode 欢迎界面中点击“Create a new Xcode project”,Xcode会打开一个供开发者选择项目的界面。选择app后选择next:

    image-20240429221026640

  2. Product Name 输入项目名称 SwiftUIDemo

    image-20240429224723335

  3. 选择项目保存路径

    image-20240429225957503

  4. 点击创建后,新项目创建完了,此时点击左上角的三角形即可运行,iphone15 pro 下的Hello World!运行成功~

    image-20240429232606611

    image-20240429232732367

1.2 简单分析视图文件代码

​ 如图所示代码结构,在每个视图文件中,我们都需要使用import加载SwiftUI框架,在ContentView视图文件的主体代码框架中,使用VStack垂直布局容器,将内部的所有组件按照纵向进行排布。VStack垂直布局容器使用{}花括号进行包裹内容,这是Swift语法中的闭包写法。

​ 在VStack垂直布局容器中,放置了两个基本的空间Image图片控件和Text文本控件。其中Image图片控件使用【“.”+修饰符】进行修饰美化, .imageScale()修饰符是让图片缩放大小至.large”大“,.foregroudColor()修饰符是修改图片的前景色(填充色)为.tint 当前颜色方案中的 tint 颜色(注:来自于文心一言对代码的解释,该部分与书中内容有差异)。

image-20240429232937364

2 Text文字的使用

2.1 创建新的视图文件

后续学习中,都需要为每个知识点都创建一个新的视图,方便学习和理解

1.选中名为SwiftUIDemo2的文件夹(原书为SwiftUIDemo,文章是在自己验证过后写的,SwiftUIDemo2用于复现截图),鼠标右键点击,选择New File...选项,创建一个新的SwiftUI视图文件。

image-20240430232900277

2.在弹出界面中选择“SwiftUI View”:

[外链图片转存中…(img-XvHPBajl-1714497470681)]

点击“Next”按钮,将新的SwiftUI视图文件命名为“SwiftUIText”,点击“Create”按钮就得到的了新的SwiftUI视图文件。如图所示:

image-20240501000811217

2.2 修饰符格式化文字

修饰符的使用方法为在控件后面使用.加修饰符名称。

2.2.1 .font() 修饰符

代码中,告诉SwiftUI,需要设置Text文本控件的字体,设置为字体的内容是字体的大小,调整system系统设备的系统字号size大小为23,在预览窗口可以看到文字的大小实时发生变化。

Text("成为优秀的ios开发者!").font(.system(size: 24))

image-20240501001153958

2.2.2.foregroundColor() 修饰符

.foregroundColor()前景色修饰符,使用点语法填写颜色,这里使用的是.gray灰色。

        Text("成为优秀的ios开发者!")
            .font(.system(size: 24))
            .foregroundStyle(.gray)

image-20240501005714317

2.2.3 .fontWeight() 修饰符

使用.fontWeight()字重修饰符,让文字加粗

        Text("成为优秀的ios开发者!")
            .font(.system(size: 24))
            .foregroundStyle(.gray)
            .fontWeight(.bold)

image-20240501010243018

2.2.4 .lineLimit() 修饰符

.lineLimit()行数限制修饰符用于设置文字显示最多的行数,超过行数的部分自动省略。

后续会用到(引导用户点击阅读全文)

        Text("但凡能说出的,赞扬的,比喻的,那都不算是隐晦,那都是包装精致的爱语。所谓的隐晦,是将爱意藏在一举一动之中,是渴望表白但又有所顾忌的忐忑。")
            .font(.system(size: 17))
            .foregroundStyle(.gray)
            .lineLimit(2)
            .padding()

image-20240501011040630

2.2.4 .multilineTextAlignment() 修饰符

多行文本展示中,系统默认左对齐,使用.multilineTextAlignment() ,可以选择其他文本对齐方式。

        Text("他居然记住了我无意间的话,这感觉很特别")
            .font(.system(size: 17))
            .foregroundStyle(.gray)
            .multilineTextAlignment(.center)
            .padding()

image-20240501010847623

2.2.5 其他修饰符
修饰符名称示例
.tracking()字间距.tracking(5),字间距为5
.lineSpacing()行间距lineSpacing(5),行间距为5
.truncationMode()截断模式.truncationMode(.head),文本头部被截断
.border()边框.border(Color.blue, width:1),边框为蓝色,边框宽度为1
.blur()模糊.blur(1),模糊度为1
.rotationEffect()2D旋转.rotationEffect(.degrees(20), anchor:UnitPoint(x:0, y:0)),00为起点旋转20度
.rotation3DEffect()3D旋转.rotation3DEffect(.degrees(60), axis:UnitPoint(x:0, y:0, z:0)),空间坐标轴旋转60度

2.3 项目中使用自定义字体

略,后期用到再补充

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值