Hier ist eine kurze Anleitung, dies zu tun:
1.Initialize Kommissionierer und Daten Picker-Sets in der Klasse:
var pickerView1 = UIPickerView()
var pickerView2 = UIPickerView()
var pickerView1Data: [String] = ["Waikiki", "Long Beach", ...]
var pickerView2Data: [String] = ["Crab", "Seal", ...]
2.Set Delegierten, Daten Quellen und Tags (in viewDidLoad).
pickerView1.dataSource = self
pickerView1.delegate = self
pickerView1.tag = 1
pickerView2.dataSource = self
pickerView2.delegate = self
pickerView2.tag = 2
3.Set Anzahl der Zeilen
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.Return Daten für jede Zeile
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.Capture picker Auswahl
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]
}
}
Natürlich ist diese ist oben auf alles andere du h müssen Sie tun, um die Picker-Ansichten einzurichten, aber dies sollte alles sein, was für zwei Picker-Ansichten erledigt werden muss.
Welche Bedenken haben für die Verwendung von zwei? Haben Sie Probleme mit der Unterscheidung der Picker innerhalb der Delegate-Methoden? –
Ja, mir ist nicht bewusst, wie Sie ein Array auf die separaten Picker setzen können @IanMoses – Sam
Delegate Methoden enthalten die UIPickerView als Parameter. Sie können jedem UIPicker einen Tag-Wert zuweisen und in jeder Delegate-Methode den Tag-Wert überprüfen. So etwas wie: switch pickerView.tag {case pickerOneTagValue: // Mach etwas hier case pickerTwoTagValue: // Mach etwas anderes hier Standard: break} –