我正在制作一个应用程序,用户可以选择在同一个视图控制器中使用两个uipicker。怎么能做到。我想让一个扒手展示海滩的名字,另一个展示生活在海滩上的动物。
谢谢你的帮助

最佳答案

以下是执行此操作的快速指南:
1.初始化选取器,以及类中的选取器数据集:

 var pickerView1 = UIPickerView()
 var pickerView2 = UIPickerView()

 var pickerView1Data: [String] = ["Waikiki", "Long Beach", ...]
 var pickerView2Data: [String] = ["Crab", "Seal", ...]

2.设置委托、数据源和标记(在viewDidLoad中)。
 pickerView1.dataSource = self
 pickerView1.delegate = self
 pickerView1.tag = 1

 pickerView2.dataSource = self
 pickerView2.delegate = self
 pickerView2.tag = 2

3.设置行数
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    var returnIndex: Int = 0

    if pickerView.tag == 1 {
        returnIndex = pickerView1Data.count
    } else if pickerView.tag == 2 {
        returnIndex = pickerView2Data.count
    }

    return returnIndex
}

4.返回每行的数据
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    var returnRow: String!

    if pickerView.tag == 1 {
        returnRow = pickerView1Data[row]
    } else if pickerView.tag == 2 {
        returnRow = pickerView2Data[row]
    }

    return returnRow
}

5.捕获选择器视图选择
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    // This method is triggered whenever the user makes a change to the picker selection.

    if pickerView.tag == 1 {

        beachTextField.text = pickerView1Data[row]

    } else if pickerView.tag == 2 {

        animalTextField.text = pickerView2Data[row]

    }

}

当然,这是在设置picker视图所必须做的所有事情之上的,但是对于两个picker视图,这应该是需要注意的所有事情。

10-07 19:13
查看更多