[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
Rectanglelà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
HStacklồ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
resultthànhcreaturetrong fileCreatures.swift. - Tạo một file Swift mới tên
Creature.swiftvà di chuyển structcreaturevà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ụngNavigationLinkvà truyềncreatuređược chọn sangDetailView. - Sửa
DetailViewđể nhậncreaturevà hiển thị tên Pokémon tương ứng. - Sửa
PreviewProvidercủ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.swiftvà copy nội dung từCreatures.swiftvà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,weightvà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,weightvàimageURL.
- Tạo một file Swift mới
- Sử dụng CreatureDetail trong DetailView:
- Thêm state variable
creatureDetailtrongDetailView. - Gọi
getDatatừCreatureDetailkhiDetailViewxuất hiện bằng cách sử dụng modifiertask. - Cập nhật
URLStringtrongCreatureDetailbằng URL của Pokémon được chọn. - Hiển thị
heightvàweighttrongTextđã format thành chuỗi (ví dụ: 1.0). - Căn trái
VStackchứ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ả!>
