ios - swift 4中datePicker中月份列中的随机值
问题描述
我得到随机值月份列。对于 datepicker 中选择的任何值,月份列中的值保持不变
这是我的代码
@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”,但月份字段中的值总是不同
如果有人有想法,请分享。谢谢
解决方案
推荐阅读
- c - 如何在c中从字符串中删除字符
- function - Pine 脚本 - 动态变量?(不一定是正确的术语)
- javascript - 添加实例化网格反应纤维threejs
- android - LineChart Android - xAxis 以毫秒为单位
- php - 按自定义字段过滤帖子 - url 正确更新但过滤不起作用
- matlab - 是否可以在没有深度学习工具箱的情况下将 KERAS 模型导入 Matlab?
- docker - Docker 容器无法在 localhost 和同一网段中访问
- flutter - 如何使用 Flutter 从 Amplify Datastore 中的关系中检索数据
- python-3.x - 如何在 5 个元组中的元组列表中随机将变量质量更改为正负 delta
- c# - 改变 C# 中的事件的可见性?