テキストフィールドとピッカーを用いて、カレンダーの月と日を指定するものを作成したいです。現段階では、月を指定するものはできたのですが、もう一つ作る方法がわかりません。どうすればいいでしょうか?もう一つとは、もう一つテキストフィールドを作成して、そこに新しく日にちを選ぶピッカーを作成することです。つまり、テキストフィールド二つで別々にピッカーを作成したいです。
ソースコード
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return 12 } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return data[row] } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { textField.text = data[row] } @IBOutlet weak var textField: UITextField! var pickerView = UIPickerView() var data = ["1", "2", "3","4", "5", "6","7", "8", "9","10", "11", "12"] override func viewDidLoad() { super.viewDidLoad() createPickerView() } func createPickerView() { pickerView.delegate = self textField.inputView = pickerView // toolbar let toolbar = UIToolbar() toolbar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 44) let doneButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ViewController.donePicker)) toolbar.setItems([doneButtonItem], animated: true) textField.inputAccessoryView = toolbar } @objc func donePicker() { textField.endEditing(true) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { textField.endEditing(true) }
}
あなたの回答
tips
プレビュー