Chế độ xem bộ chọn hiển thị một hoặc nhiều bánh xe mà người dùng thao tác để chọn các mục. Mỗi bánh xe — được gọi là một thành phần — có một loạt các hàng được lập chỉ mục đại diện cho các mục có thể chọn.
UIPicker là một trong những thành phần quan trọng và hầu như được sử dụng trong hầu hết các ứng dụng. Bạn sẽ thấy chúng chủ yếu trong các ứng dụng dựa trên biểu mẫu.
Bạn có thể đọc thêm về nó tại đây:https://developer.apple.com/documentation/uikit/uipickerview
Trong bài đăng này, chúng ta sẽ xem cách tạo UIPicker theo lập trình từ mảng và tải các giá trị mảng vào đó.
Vì vậy, hãy bắt đầu,
Bước 1 - Mở Xcode và tạo một ứng dụng xem duy nhất và đặt tên là PickerSample.
Bước 2 - Mở ViewController.swift, Vì chúng tôi đang làm theo chương trình nên sẽ không đụng đến bảng phân cảnh.
Bước 3 - Đầu tiên trong phương thức viewDidLoad tạo một đối tượng của UIPickerView
let UIPicker: UIPickerView = UIPickerView()
Bước 4 - Đặt đại biểu và tải chế độ xem ở giữa màn hình,
UIPicker.delegate = self as UIPickerViewDelegate UIPicker.dataSource = self as UIPickerViewDataSource self.view.addSubview(UIPicker) UIPicker.center = self.view.center
Bước 5 - Xác nhận lớp viewController với UIPickerViewDelegate, UIPickerViewDataSource
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource
Bước 6 - Tạo một mảng dữ liệu mà bạn muốn hiển thị
let dataArray = ["English", "Maths", "History", "German", "Science"]
Bước 7 - Thực hiện các phương pháp ủy quyền,
func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return dataArray.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { let row = dataArray[row] return row }
Bước 8 - Chạy ứng dụng
Hoàn thành mã
import UIKit class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { let dataArray = ["English", "Maths", "History", "German", "Science"] override func viewDidLoad() { super.viewDidLoad() let UIPicker: UIPickerView = UIPickerView() UIPicker.delegate = self as UIPickerViewDelegate UIPicker.dataSource = self as UIPickerViewDataSource self.view.addSubview(UIPicker) UIPicker.center = self.view.center } func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return dataArray.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { let row = dataArray[row] return row } }