1. Setup
Download and install xcode
! quiz /
1. type of apps xcode – all
2. main working area – editor
2. SwiftUI Fundamental
SwiftUI stacks /
Image สามารถเลือก symbol library ได้ , SF symbol
VStack , HStack
HStack in SwiftUI /
rt click เลือก embedded HStack
Modifying SwiftUI objects
3. Finishing the App
::: struct ใน Xcode
(โดยเฉพาะกับภาษา Swift ซึ่งใช้สำหรับ iOS/macOS development) คำว่า struct คือการสร้าง โครงสร้างข้อมูล หรือที่เรียกว่า Structure ซึ่งมีลักษณะใกล้เคียงกับ class แต่มีคุณสมบัติแตกต่างบางประการที่สำคัญ เช่น:
✅ โครงสร้างพื้นฐานของ struct ใน Swift
struct Person {
var name: String
var age: Int
func greet() {
print("Hello, my name is \(name) and I am \(age) years old.")
}
}
🔹 วิธีใช้งาน
var p = Person(name: "John", age: 30)
p.greet() // Hello, my name is John and I am 30 years old.
📌 ความแตกต่างหลักระหว่าง struct และ class ใน Swift
| จุดเปรียบเทียบ | struct (Structure) | class (Class) |
|---|---|---|
| การส่งผ่านค่า | Value type (ส่งสำเนา) | Reference type (ส่งอ้างอิง) |
| การสืบทอด (inherit) | ❌ ไม่สามารถทำได้ | ✅ ทำได้ |
| การใช้งานทั่วไป | ใช้กับข้อมูลเบาๆ เช่น Model | ใช้กับข้อมูลที่ต้องแชร์หรือมี state |
🛠 ใช้งาน struct ใน Xcode อย่างไร?
- เปิด Xcode
- สร้างไฟล์ใหม่:
File > New > File... > Swift File - พิมพ์ struct ลงไปในไฟล์
- หากใช้ใน
SwiftUI, struct จะถูกใช้สร้าง View เช่น:
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, world!")
}
}
🧠 คำแนะนำ:
- หากคุณต้องการใช้ View หรือ Model แบบเบาๆ ใน SwiftUI → ใช้
struct - ถ้าคุณต้องการใช้ OOP เต็มรูปแบบ, inherit หรือ reference → ใช้
class - Swift แนะนำให้ใช้
structมากกว่าclassถ้าไม่จำเป็นต้องสืบทอด หรือแชร์ state
VStack ใน SwiftUI ย่อมาจาก Vertical Stack
คือ คอนเทนเนอร์ที่วาง UI เรียงกันในแนวตั้ง (บนลงล่าง)
🔹 ตัวอย่างการใช้ VStack
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Text("บนสุด")
Text("ตรงกลาง")
Text("ล่างสุด")
}
}
}
ผลลัพธ์:
- ข้อความ 3 บรรทัดเรียงจากบนลงล่างในแนวตั้ง
🔧 ปรับแต่งเพิ่มเติมได้ เช่น:
swiftCopy codeVStack(alignment: .leading, spacing: 10) {
Text("ชื่อ:")
Text("อายุ:")
Text("ที่อยู่:")
}
alignment:ตำแหน่งแนวนอน เช่น.center,.leading,.trailingspacing:ระยะห่างระหว่างแต่ละ element
🔁 คู่กับ HStack / ZStack:
| Stack | แนว | ตัวอย่าง |
|---|---|---|
VStack | บนลงล่าง | เรียง UI แนวตั้ง |
HStack | ซ้ายไปขวา | เรียง UI แนวนอน |
ZStack | ซ้อนกัน | ซ้อน UI กันเหมือนเลเยอร์ |
ถ้าต้องการตัวอย่างซับซ้อนกว่านี้ เช่น VStack ซ้อนใน ScrollView, ForEach หรือใช้งานใน iPhone layout บอกได้เลยครับ ผมจัดให้!
ContentView : View
ใน SwiftUI เมื่อคุณเห็นโค้ดแบบนี้:
struct ContentView: View {
var body: some View {
Text("Hello, world!")
}
}
✅ คำอธิบาย:
ContentViewคือชื่อ struct ที่คุณกำหนดให้เป็น “หน้าจอ” หรือ UI component หนึ่ง: Viewหมายความว่าContentViewเป็นชนิด View (conforming to theViewprotocol) ซึ่งเป็นโครงสร้างพื้นฐานของ SwiftUIbodyคือ สิ่งที่ View นี้จะแสดง (มันต้องคืนค่าsome View)
🔹 ชัดๆ ทีละบรรทัด:
struct ContentView: View {
- สร้าง struct ชื่อ
ContentView - ให้ conform กับ protocol
View
var body: some View {
- คุณต้องมี
bodyซึ่งเป็นตัวกำหนด UI Layout some Viewหมายถึงจะต้องส่งคืนองค์ประกอบที่เป็น View อย่างน้อย 1 อย่าง
Text("Hello, world!")
- นี่คือตัวอย่าง View แบบง่ายที่สุด: ข้อความที่แสดงบนหน้าจอ
🧠 บันทึกเพิ่มเติม:
- คุณ ไม่จำเป็นต้องใช้
classเพราะ SwiftUI ใช้structและ “declarative UI” - SwiftUI จะ “คอยสังเกตการเปลี่ยนแปลง” และปรับ UI โดยอัตโนมัติจากค่าที่คุณให้ใน
body
🔁 ตัวอย่างเพิ่มเติม:
struct ContentView: View {
var body: some View {
VStack {
Text("ชื่อ: ChatGPT")
Text("บทบาท: AI Assistant")
}
}
}
