[Video Summary] Ch. 6.4 DetailView in SwiftUI - Catch 'em all App (2024)
Mô tả nhanh
Video này hướng dẫn cách tạo Detail View trong SwiftUI cho ứng dụng Catch 'em all, tập trung vào việc thiết lập giao diện cơ bản và tạo một class mới để quản lý dữ liệu chi tiết của Pokémon (chiều cao, cân nặng và URL hình ảnh).
Video
Mô tả chi tiết
Video này hướng dẫn cách tạo Detail View trong SwiftUI cho ứng dụng Catch 'em all, tập trung vào việc thiết lập giao diện cơ bản và tạo một class mới để quản lý dữ liệu chi tiết của Pokémon (chiều cao, cân nặng và URL hình ảnh).
Các bước thực hiện bao gồm:
- Tạo Detail View:
- Tạo một SwiftUI View mới tên là
DetailView
. - Sử dụng
VStack
để chứa các thành phần giao diện. - Thêm
Text
để hiển thị tên Pokémon với font chữ tùy chỉnh, in đậm, giới hạn dòng và căn trái. - Thêm
Rectangle
làm đường kẻ phân cách dưới tên Pokémon. - Sử dụng
HStack
để chứa hình ảnh và thông tin chiều cao cân nặng. - Thêm
Image
(tạm thời dùng hình mặc định) với background trắng, bo góc, đổ bóng và viền xám. - Thêm hai
HStack
lồng nhau để hiển thị "Height" và "Weight" cùng với giá trị tương ứng. - Thêm padding để tạo khoảng cách, và căn chỉnh các thành phần giao diện.
- Tạo một SwiftUI View mới tên là
- Tách struct Creature:
- Sửa tên struct
result
thànhcreature
trong fileCreatures.swift
. - Tạo một file Swift mới tên
Creature.swift
và di chuyển structcreature
vào đó để có thể truy cập từ nhiều view.
- Sửa tên struct
- Truyền dữ liệu từ CreatureListView sang DetailView:
- Sửa
CreatureListView
để sử dụngNavigationLink
và truyềncreature
được chọn sangDetailView
. - Sửa
DetailView
để nhậncreature
và hiển thị tên Pokémon tương ứng. - Sửa
PreviewProvider
củaDetailView
để khởi tạocreature
để preview không lỗi.
- Sửa
- Tạo class CreatureDetail:
- Tạo một file Swift mới
CreatureDetail.swift
và copy nội dung từCreatures.swift
vào. - Sửa tên class thành
CreatureDetail
. - Thêm thuộc tính
URLString
để lưu URL của từng Pokémon. - Thêm các thuộc tính
height
,weight
vàimageURL
để lưu thông tin chi tiết của Pokémon. - Tạo struct
Sprite
để decode JSON chứa URL hình ảnh. - Sửa hàm
getData
để decode JSON và lấyheight
,weight
vàimageURL
.
- Tạo một file Swift mới
- Sử dụng CreatureDetail trong DetailView:
- Thêm state variable
creatureDetail
trongDetailView
. - Gọi
getData
từCreatureDetail
khiDetailView
xuất hiện bằng cách sử dụng modifiertask
. - Cập nhật
URLString
trongCreatureDetail
bằng URL của Pokémon được chọn. - Hiển thị
height
vàweight
trongText
đã format thành chuỗi (ví dụ: 1.0). - Căn trái
VStack
chứa chiều cao và cân nặng.
- Thêm state variable
<Chúc bạn có buổi học lập trình hiệu quả!>