<分区>
我正在获取随机值月份列。 对于日期选择器中选择的任何值,月份列中的值保持不变
这是我的代码
@IBAction func chooseDobClicked(_ sender: Any) {
self.view.endEditing(true)
datePickerView.isHidden = false
datePicker.isHidden = false
}
@objc func doDatePicker(){
//DatepickerView
self.datePickerView.frame = CGRect(x: 5, y: Int(SCREEN_HEIGHT-280), width: Int(SCREEN_WIDTH-10), height: 276)
self.datePickerView.backgroundColor = UIColor.white
self.datePickerView.layer.cornerRadius = 8.0
self.datePickerView.layer.masksToBounds = true
self.datePickerView.layer.borderWidth = 2;
self.datePickerView.layer.borderColor = UIColor.black.cgColor;
doneBtn.addTarget(self, action: #selector(doneClicked), for: .touchUpInside)
doneBtn.setTitle("Done", for: .normal)
doneBtn.frame = CGRect(x: 20, y: 10, width: 80, height: 50)
doneBtn.setTitleColor(UIColor.white, for: .normal)
doneBtn.backgroundColor = LogInVC.THEMECOLOR
doneBtn.titleLabel?.font = UIFont(name: "Raleway-Bold", size: 16.0)
doneBtn.layer.cornerRadius = 16.0
doneBtn.layer.masksToBounds = true
doneBtn.layer.borderColor = UIColor.clear.cgColor
doneBtn.layer.borderWidth = 1
cancelBtn.addTarget(self, action:#selector(cancelClicked), for: .touchUpInside)
cancelBtn.setTitle("Cancel",for: .normal)
cancelBtn.frame = CGRect(x: SCREEN_WIDTH-110, y: 10, width: 80, height: 50)
cancelBtn.setTitleColor(UIColor.white, for: .normal)
cancelBtn.backgroundColor = LogInVC.THEMECOLOR
cancelBtn.titleLabel?.font = UIFont(name: "Raleway-Bold", size: 16.0)
cancelBtn.layer.cornerRadius = 16.0
cancelBtn.layer.masksToBounds = true
cancelBtn.layer.borderColor = UIColor.clear.cgColor
cancelBtn.layer.borderWidth = 1
// DatePicker
self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 90, width: Int(SCREEN_WIDTH-20), height: 200))
self.datePicker?.backgroundColor = UIColor.white
self.datePicker?.datePickerMode = UIDatePickerMode.date
self.datePicker?.layer.masksToBounds = true
// datePicker.center = view.center
datePickerView.addSubview(datePicker)
datePickerView.addSubview(doneBtn)
datePickerView.addSubview(cancelBtn)
self.view.addSubview(datePickerView)
datePickerView.isHidden = true;
}
@objc func doneClicked(){
let dateFormatter1 = DateFormatter()
dateFormatter1.dateFormat = "dd/mm/yyyy"
var calendar = Calendar(identifier: .gregorian)
var components: DateComponents? = calendar.dateComponents([.year, .month, .day], from: datePicker.date, to: Date())
print("Difference in date components: \(components?.day ?? 0)/\(components?.month ?? 0)/\(components?.year ?? 0)")
if (components?.year ?? 0) < 18 || (components?.year ?? 0) >= 90 {
var alert = UIAlertView(title: "Alert!", message: "User age should be greater than 18 years and less than 90 years.", delegate: nil, cancelButtonTitle: "OK", otherButtonTitles: "")
alert.show()
return
}
print(dateFormatter1.string(from: datePicker.date))
dobTextField.text = dateFormatter1.string(from: datePicker.date)
dobTextField.resignFirstResponder()
datePickerView.isHidden = true
}
@objc func cancelClicked(){
datePickerView.isHidden = true
dobTextField.resignFirstResponder()
}
每次都会出现月份列中的这个“45”值 有时它会变成“35” 但月份字段中的值总是不同
如果有人有想法,请分享。 谢谢