如何在 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.