1
시간이 유일한 UIDatePicker
변수가 있습니다. 다른 시간을 다른 TextFields
으로 설정할 수 있기를 바랍니다. 내가 설정 한 방식은 한 번 변경하면 모두 변경됩니다.스위프트 : 하나의 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
}
가 하나 UIDatePicker
는 별도로 모든 시간을 관리해야 할, 아니면 각 텍스트 필드에 대한 채우기 위해 14 다른 사람을 만들어야 할 수 있습니까?
날짜 포맷터 로캘을 "en_US_POSIX"로 설정해야합니다. https://stackoverflow.com/questions/25657123/swift-nsdateformatter-not-working/25671175#25671175. Btw Swift는 타입 유추 된 언어이고 문자열을 String으로 캐스팅하는 것은 무의미합니다 –
좋은 캐치, 나는 OP의 코드를 복사하고이를 정리하는 것을 잊었습니다! – MQLN
'값 유형'오류가 발생합니다. UIView '회원 없음'텍스트가 있습니다. –