如何在 iOS 中從陣列以程式設計方式建立 Picker?


Picker 檢視顯示一個或多個輪子,使用者可以透過操作這些輪子來選擇專案。每個輪子(稱為元件)都有一系列索引行,表示可選擇的專案。

UIPicker 是重要的元件之一,並且幾乎在大多數應用程式中都使用。您會在大多數基於表單的應用程式中看到它們。

您可以在此處瞭解更多資訊:https://developer.apple.com/documentation/uikit/uipickerview

在這篇文章中,我們將瞭解如何從陣列以程式設計方式建立 UIPicker 並將陣列值載入到其中。

所以讓我們開始吧,

步驟 1 - 開啟 Xcode 並建立一個單檢視應用程式,並將其命名為 PickerSample。

步驟 2 - 開啟 ViewController.swift,由於我們是透過程式設計方式進行建立,因此我們完全不會接觸故事板。

步驟 3 - 首先在 viewDidLoad 方法中建立一個 UIPickerView 的物件

let UIPicker: UIPickerView = UIPickerView()

步驟 4 - 設定委託並在螢幕中央載入檢視,

UIPicker.delegate = self as UIPickerViewDelegate
UIPicker.dataSource = self as UIPickerViewDataSource
self.view.addSubview(UIPicker)
UIPicker.center = self.view.center

步驟 5 - 使用 UIPickerViewDelegate、UIPickerViewDataSource 確認 viewController 類

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource

步驟 6 - 建立一個要顯示的資料陣列

let dataArray = ["English", "Maths", "History", "German", "Science"]

步驟 7 - 實現委託方法,

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
}

步驟 8 - 執行應用程式

完整程式碼

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
   }
}

更新於: 2019-08-30

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.