私はただ1つの時間があるUIDatePicker
変数を持っています。私は異なる時間を異なるTextFields
に設定できるようにしたい。私が設定した方法は、私が一度変更すると、すべてが変わるということです。スイフト:1つのUITimePicker、複数のテキストフィールド
コード:
*@IBOutlets for all the UITextFields...*
private var datePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
self.setupDatePicker()
self.setupTextFields()
}
func setupDatePicker() {
self.datePicker.frame = CGRect(x: 0, y: 50, width: self.view.frame.width, height: 200)
self.datePicker.timeZone = NSTimeZone.local
self.datePicker.datePickerMode = .time
self.datePicker.minuteInterval = 30
self.datePicker.backgroundColor = .white
self.datePicker.addTarget(self, action: #selector(self.timeValueChanged(_:)), for: .valueChanged)
}
func setupTextFields() {
self.mondayOpenTF.inputView = self.datePicker
self.mondayCloseTF.inputView = self.datePicker
self.tuesdayOpenTF.inputView = self.datePicker
self.tuesdayCloseTF.inputView = self.datePicker
self.wednesdayOpenTF.inputView = self.datePicker
self.wednesdayCloseTF.inputView = self.datePicker
self.thursdayOpenTF.inputView = self.datePicker
self.thursdayCloseTF.inputView = self.datePicker
self.fridayOpenTF.inputView = self.datePicker
self.fridayCloseTF.inputView = self.datePicker
self.saturdayOpenTF.inputView = self.datePicker
self.saturdayCloseTF.inputView = self.datePicker
self.sundayOpenTF.inputView = self.datePicker
self.sundayCloseTF.inputView = self.datePicker
}
@objc
func timeValueChanged(_ sender: UIDatePicker) {
let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"
let date: String = dateFormatter.string(from: sender.date)
self.mondayOpenTF.text = date as String
self.mondayCloseTF.text = date as String
self.tuesdayOpenTF.text = date as String
self.tuesdayCloseTF.text = date as String
self.wednesdayOpenTF.text = date as String
self.wednesdayCloseTF.text = date as String
self.thursdayOpenTF.text = date as String
self.thursdayCloseTF.text = date as String
self.fridayOpenTF.text = date as String
self.fridayCloseTF.text = date as String
self.saturdayOpenTF.text = date as String
self.saturdayCloseTF.text = date as String
self.sundayOpenTF.text = date as String
self.sundayCloseTF.text = date as String
}
それは1 UIDatePicker
が別々にすべての時間を管理するために持っている、または私は各テキストフィールドのために埋めるために14種類のものを作成しなければならないのは可能ですか?
日付フォーマッタのロケールを "en_US_POSIX"に設定する必要があります。 https://stackoverflow.com/questions/25657123/swift-nsdateformatter-not-working/25671175#25671175 Btw Swiftは型推論言語であり、文字列を文字列としてキャストするのは無意味です –
良いキャッチ、私はOPのコードをコピーして、それをきれいにするのを忘れました! – MQLN
「値の種類」のエラーが表示されるUIViewにメンバー 'text'がありません –