Вот краткое руководство как это сделать:
1.Initialize сборщиков и наборы данных Picker в классе:
var pickerView1 = UIPickerView()
var pickerView2 = UIPickerView()
var pickerView1Data: [String] = ["Waikiki", "Long Beach", ...]
var pickerView2Data: [String] = ["Crab", "Seal", ...]
2.Set делегаты, данные источников и тегов (в viewDidLoad).
pickerView1.dataSource = self
pickerView1.delegate = self
pickerView1.tag = 1
pickerView2.dataSource = self
pickerView2.delegate = self
pickerView2.tag = 2
3.Set количество строк
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 данные для каждой строки выбора
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 pickerView
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]
}
}
Конечно, это находится на вершине всего остального, что вы h ave, чтобы сделать, чтобы создать представления сборщика, но это должно быть все, что нужно позаботиться о двух вариантах выбора.
Какое беспокойство имеет отношение к использованию двух? Вы боретесь с тем, как обрабатывать дифференциацию сборщиков в рамках методов делегата? –
Да, я не знаю, как вы можете установить массив для отдельных сборщиков @IanMoses – Sam
. Методы делегата включают в себя параметр UIPickerView. Вы можете назначить каждому тегу UIPicker значение тега, а в каждом методе делегата проверить значение тега. Что-то вроде: switch pickerView.tag {case pickerOneTagValue: // Делать что-то здесь case pickerTwoTagValue: // Сделать что-то еще здесь по умолчанию: break} –