top of page

Coding学习路径 | SwiftUI 001

  • 作家相片: Nicole Shi
    Nicole Shi
  • 6月4日
  • 讀畢需時 2 分鐘

这个是Chaocode SwiftUI新手入门课程1-18个影片的笔记内容,做一些记录。一些概念都比较晦涩,需要在实操的时候反复琢磨。



调整器(Modifier)

  1. 有的只对套用的那一个view做改变,有的会改变所有包含在里面的view

  2. 有些调整前会叠加,有些只套用第一个(不会被覆盖)

  3. 大部分的调整前都是在View的extension中,使用后会回传一个新的View

  4. 调整器的位置很重要


View的排版过程

  1. 上层画面告诉下层画面自己有多少空间,并询问他们需要多少空间

  2. 下层画面回应自己想要的大小。他可以选择任何大小,不一定要配合上层提供的大小决定

  3. 上层根据收集到的所有大小,根据自己的排版规则来决定他们的位置在哪

  4. 大小由子view决定,位置由上层view决定


View的大小类型

Hugging:知道自己需要的大小是多少——text

Neutral:根据自己的子view决定——VStack Button

Expanding:想要尽可能占满所有空间——Color Image.resizable

x轴和y轴的大小可以不一样



Recap

  1. SwiftUI基本架构

  2. View & 调整器

  3. @State

  4. 变形和转场动画

  5. View的身份

  6. SwiftUI如何排版 & View的大小类型

主题

涉及内容

SwiftUI 排版

VStack, HStack, ScrollView, Grid, frame、spacing、clipped、Spacer

状态管理

@State, withAnimation, toggle(), binding 动画

过渡动画

.transition(.asymmetric / .move + .opacity), .animation(.spring / easeInOut)

自适应设计

minimumScaleFactor, previewDevice, .frame(maxWidth: .infinity)

资料的维持


程式执行是产生的资料被存在记忆体中

  • static var defaultValue: CGFloat = 300

  • 资料随着程式或实例启动产生,也随着程式关闭或实例释放而消失

  • 要延长资料的寿命,必须讲资料存到硬碟


UserDefults

  • Key-value pair

  • 在程式启动时自动读入记忆体,提供快速存取

  • 只能存Plist类型。(NSDate, NSString, NSNumber, NSDate, NSArray, NSDictionary)

  • 系统管理储存的时间(不可预期)

  • 在tvOS上最多储存1MB

  • Thread safe


预设的空回传值

AppStorage<Value>

  • 存取UserDefaults中的某个值,并且在值产生变化是通知画面更新

  • 支持基本类型:Bool, String, Data, Int, Double, URL

  • 支援遵循 RawRepresentable 且 RawValue 为 String 或 Int

  • 投射类型为 Binding<Value>


强制设定

  • 在测试时,可以再Scheme中强制固定为某个值


SceneStorage

  • 和AppStorage一样功能,但是存得值是变成属于单独Scene(视窗)的

  • 底层不是UserDefaults且没有公开,只能透过这个属性包装存取

  • SceneStorage中的资料在Scene被关闭时消失

Comments


Copyright © 2025 Sharawadgi My Life

bottom of page