本篇先簡單了解一個SwiftUI 中View 的組成跟佈局方法
Chapter 1-1 Getting started with Scrumdinger
Swift 是一種程式語言,而SwiftUI 則是一個聲明式的UI framework,可且指定介面在Apple 不同平台上,做出特定行為。
SwiftUI 的關鍵功能有
- 聲明式語法(Declarative syntax): 用Swift 宣告畫面的結構
- 組合API(Compositional API): 利用內建功能快速寫出UI,並可以將簡單的小組件合併成複雜的UI
- 佈局系統: 輕鬆定義視圖彼此之間的關係
- 資料依賴: 當資料產生變化,畫面會自動更新
- 無障礙功能
Chapter 1-2 Using stacks to arrange views
/c740e9d5-0628-4623-8009-41fa30035cd0/1749024452.png.png)
主體是body 這個 View。UI components 會寫在body 裡面,每一個component 都是實作View 這個struct。可以看到body 裡面有VStack、HStack,SwiftUI 利用垂直(VStack)、水平(HStack)、前後(ZStack) 等方式堆疊Views。將各種的View 組合起來,而形成了使用者介面。
組件後面接{},底下就可以再放其他組件,如上面的VStack, Button;組件後面接() 可以設定屬性,如Lable 的systemImage。
除了可以用打字的方式加入組件以外,也可以按編譯器右上角的"+",用拖拉方式把組件加入UI 中。
/c740e9d5-0628-4623-8009-41fa30035cd0/1748853123.png.png)
用拖拉的好處是編譯器會預設幫你帶出組件常用的屬性。另外一種方式是點右鍵>Show SwiftUI inspector,可以看到完整的設定屬性。
以下拖拉出DatePicker,帶出selection, label 兩個屬性。
/c740e9d5-0628-4623-8009-41fa30035cd0/1748854294.png.png)
除了屬性之外,還可以用built-in modifiers(內建修飾符) ,透過強型別的方式修改組件的外觀。例如:Text 透過.font 這個modify 改變字體。
/c740e9d5-0628-4623-8009-41fa30035cd0/1749027430.png.png)
View 才能用modify,modify 會回傳一個View,故上面的.font 回傳一個View 之後,如果要再做其他修改,可以直接在後面接新的modify。
References:
https://developer.apple.com/tutorials/app-dev-training/getting-started-with-scrumdinger