0
私は同じView Controllerで2つのUIPickersを使用するオプションを持つアプリケーションを作成しています。どのようにこれを行うことができます。 1つのピッカーがビーチの名前を表示し、もう1つのピッカーがビーチに住む動物を表示したい。同じUIViewcontrollerの2つのピッカー
あなたの助け
私は同じView Controllerで2つのUIPickersを使用するオプションを持つアプリケーションを作成しています。どのようにこれを行うことができます。 1つのピッカーがビーチの名前を表示し、もう1つのピッカーがビーチに住む動物を表示したい。同じUIViewcontrollerの2つのピッカー
あなたの助け
のおかげでここでこれを行うにクイックガイドです:
1.Initializeピッカー、およびクラスのピッカー・データ・セット:
var pickerView1 = UIPickerView()
var pickerView2 = UIPickerView()
var pickerView1Data: [String] = ["Waikiki", "Long Beach", ...]
var pickerView2Data: [String] = ["Crab", "Seal", ...]
2.Set委譲、データはソース、およびタグ(viewDidLoad内)。各行
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]
}
}
の行の
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データ、このあなたが他のすべての上にあるピッカーのビューを設定するために行う必要がありますが、これは2つのピッカービューを処理する必要があるすべてのものでなければなりません。
2つの使用にはどんな懸念がありますか?デリゲートメソッド内でピッカーを差別化する方法に苦労していますか? –
はい、私はあなたが別のピッカーに配列を設定する方法を知らない@IanMoses – Sam
代理メソッドにはパラメータとしてUIPickerViewが含まれています。各UIPickerにタグ値を割り当て、各デリゲートメソッドでタグ値をチェックできます。何かが好きです:switch pickerView.tag {case pickerOneTagValue://ここで何かする場合pickerTwoTagValue://ここで何か他のものを実行するdefault:break} –