SwiftUI-文字篇
-
本單元主要是希望能夠讓電腦扮演溝通的橋梁,這裡我們使用最普通的「我愛你」,而這個「愛」,基本上,是朋友間的問侯,是廣義上的「大愛」,是廣義上的「博愛」,而不是狹義上的「愛情」。
因為我們要在一個電子書頁面中撰寫三個子頁面(程式),所以需要用到「模組」的概念。
基本上,Swift 電子書頁面程式有「Main」和「SharedCode」兩個模組,「Main」是主程式,可用來撰寫主要畫面,在「SharedCode」中撰寫讓所有頁面共用的函式或結構,在此寫三個子畫面,讓主程式使用。
操作步驟如下:
- 選取畫面左方的「+」號新增電子書頁面。
- 將新增的電子書面頁命名為「(07)SwiftUI-1文字篇」。
- 在畫面左下方的原始碼右方,選取右方的「+」號新增程式模組。
- 將新增的模組命名為「SharedModule」,如下圖。
- 將新增的模組子程式頁面命名為「SharedCode.swift」,如下圖。
我愛你(Text)- 在「Main」模組中撰寫程式:
- 程式碼,如下:
// 2-1a 我愛你(Text) // Created by Philip, Heman, Jean 2021/08/03 // Revised by Jean 2024/08/17 import PlaygroundSupport import SwiftUI // 2-1c 國際版(Text) // Created by Philip, Heman, Jean, 2021/08/04 // Revised by Jean 2024/08/17 let 各國文字 = [ "Do you love me?", "Est-ce que tu m'aimes?", "តើអ្នកស្រលាញ់ខ្ញុំទេ?", "私を愛していますか?", "Ты любишь меня?", "당신은 나를 사랑합니까?", "എന്നെ ഇഷ്ടമാണോ?", "Дали ме сакаш?", "ትወጂኛለሽ?", "Გიყვარვარ?", "Bạn có yêu tôi không?", "Դու սիրում ես ինձ?", "אתה אוהב אותי?", "هل تحبني؟", "👩🦰💕🧑🦰?"] var 國際版 = "" for 字串 in 各國文字 { 國際版 = 國際版 + 字串 + "\n" } print(國際版) struct 我愛你: View { var body: some View { 情書a() 情書b() 情書c(國際版) } } PlaygroundPage.current.setLiveView(我愛你())
在「SharedModule」模組中的「SharedCode」中撰寫程式:
- 程式碼,如下:
// 2-1a 我愛你(Text) // Created by Philip, Heman, Jean 2021/08/03 // Revised by Jean 2024/08/17 import SwiftUI public struct 情書a: View { public init() {} public var body: some View { Text("I ❤️ U") .font(.title) } } // 2-1b 我愛你(Text) // Created by Philip, Heman, Jean 2021/08/04 // Revised by Jean 2024/08/17 public struct 情書b: View { public init() {} public var body: some View { Text("I ❤️ U 2") .font(.title) } } // 2-1c 你愛我嗎(Text) // Created by Philip, Heman, Jean, 2021/08/04 // Revised by Jean 2024/08/17 public struct 情書c: View { private var 文字內容: String = "" public init(_ 字串: String) { 文字內容 = 字串 } public var body: some View { Text(文字內容) .font(.title) .foregroundStyle(.blue) } }
- 執行結果