Các Component Thường Dùng trong SwiftUI

3 min read

Giới thiệu

SwiftUI là một framework mạnh mẽ và linh hoạt giúp lập trình viên dễ dàng tạo ra các giao diện người dùng trực quan và sinh động. Khi làm việc với SwiftUI, chúng ta sẽ tiếp xúc với nhiều component (thành phần) khác nhau, từ các phần tử cơ bản như Text, Button đến các thành phần phức tạp hơn như List, Form.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về một số component phổ biến trong SwiftUI.

  1. Text

Text là một trong những component cơ bản nhất trong SwiftUI, được dùng để hiển thị văn bản. Bạn có thể dễ dàng tùy chỉnh giao diện của văn bản bằng cách áp dụng các modifier như font, màu sắc, độ dày, v.v.

Text("Hello, SwiftUI!")
    .font(.title)
    .foregroundColor(.blue)

Modifier trên giúp thay đổi kích thước và màu sắc của văn bản. Bạn có thể dễ dàng áp dụng các kiểu chữ khác nhau bằng cách thay đổi thuộc tính font.

  1. Button

Button là component dùng để kích hoạt một hành động khi người dùng nhấn vào. SwiftUI cung cấp các cách đơn giản để tạo và tuỳ chỉnh Button.

Button(action: {
    print("Button was tapped")
}) {
    Text("Tap me")
}

Ở đây, khi người dùng nhấn vào nút, hành động bên trong closure của Button sẽ được thực thi. Cụ thể là khi nhấn nút thì đoạn text “Button was tapped” sẽ được hiện.

  1. Image

Image được sử dụng để hiển thị hình ảnh từ nhiều nguồn khác nhau như tệp trong ứng dụng hoặc hệ thống biểu tượng của Apple.

Image(systemName: "star.fill")
    .foregroundColor(.yellow)
    .font(.largeTitle)

Bạn có thể dễ dàng tùy chỉnh hình ảnh bằng cách sử dụng các modifier tương tự như với Text, ví dụ thay đổi màu sắc hoặc kích thước.

  1. VStack & HStack

VStackHStack là hai loại layout container trong SwiftUI. VStack giúp sắp xếp các view theo chiều dọc, trong khi HStack sắp xếp theo chiều ngang.

VStack {
    Text("Line 1")
    Text("Line 2")
}
HStack {
    Image(systemName: "heart")
    Text("Favorite")
}

Các stack này giúp dễ dàng tạo ra các bố cục UI khác nhau mà không cần quá nhiều code.

  1. List

List là thành phần quan trọng để hiển thị danh sách dữ liệu. SwiftUI tự động cung cấp tính năng cuộn và tái sử dụng cell khi làm việc với List.

List(1..<5) { item in
    Text("Item \(item)")
}

List là một trong những component mạnh mẽ giúp dễ dàng xây dựng các giao diện phức tạp với nhiều dữ liệu.

  1. Form

Form là một loại List đặc biệt được thiết kế để hiển thị các biểu mẫu đầu vào. Thường được sử dụng trong việc tạo ra các form đăng ký hoặc cập nhật thông tin.

Form {
    TextField("Enter your name", text: $name)
    Toggle("Enable Notifications", isOn: $notificationsEnabled)
}
  1. NavigationView và NavigationLink

NavigationViewNavigationLink giúp xây dựng giao diện điều hướng giữa các view.

NavigationView {
    NavigationLink(destination: Text("Next Screen")) {
        Text("Go to next screen")
    }
}

Với NavigationView, bạn có thể dễ dàng tạo ra các màn hình điều hướng, một tính năng rất cần thiết trong nhiều ứng dụng.

  1. Toggle

Toggle là component dùng để hiển thị nút bật/tắt (on/off) và rất hữu ích khi làm việc với cài đặt hoặc tùy chọn người dùng.

Toggle("Enable feature", isOn: $isFeatureEnabled)

Khi người dùng tương tác với Toggle, giá trị isOn sẽ thay đổi, cho phép bạn quản lý trạng thái của nó.

Kết luận

SwiftUI cung cấp rất nhiều component khác nhau, giúp bạn dễ dàng tạo ra các giao diện người dùng tùy chỉnh và phức tạp. Từ các thành phần cơ bản như Text, Button đến các layout như VStack, ListForm, SwiftUI cung cấp đầy đủ công cụ để bạn có thể tạo ra các ứng dụng hiện đại và linh hoạt.

Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về các component thường dùng trong SwiftUI. Hãy bắt đầu thực hành ngay để nắm vững các khái niệm và ứng dụng chúng vào dự án của bạn!

Ngoài ra nếu bạn muốn tìm hiểu nhiều hơn về swift UI thì bạn có thể tham khảo tại đây

Avatar photo

Unity IAP: Triển khai Mua Hàng Consumable

Giới Thiệu Việc tích hợp tính năng mua hàng trong ứng dụng Unity là không thể tránh khỏi. Mua hàng trong ứng dụng có...
Avatar photo Tam Canh Le Chi
6 min read

Leave a Reply

Your email address will not be published. Required fields are marked *