【发布时间】:2021-08-06 03:52:59
【问题描述】:
已经在 UITableViewCell 中实现了 DatePicker,当表格在点击显示 DatePicker 时滚动一些随机的 UITextfields,如何解决这个问题,请指导。以下是我的代码:
// Inside cellForeRowAt:
if (indexPath.row == 4) {
cell.txtFieldValue.tag = 24
cell.txtFieldValue.addTarget(self, action: #selector(self.dp(_:)), for: .editingDidBegin)
nCell.txtFieldValue.keyboardToolbar.doneBarButton.setTarget(self, action: #selector(doneButtonClicked))
}
@IBAction func dp(_ sender: UITextField) {
if (sender.tag == 22 || sender.tag == 24) {
let datePickerView = UIDatePicker()
datePickerView.datePickerMode = .date
datePickerView.maximumDate = Date()
sender.inputView = datePickerView
if #available(iOS 13.4, *) {
datePickerView.preferredDatePickerStyle = .wheels
} else {
// Fallback on earlier versions
}
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let now = Date()
let dateString = dateFormatter.string(from:now)
let selectedDate = dateFormatter.date(from: dateString)
datePickerView.setDate(selectedDate!, animated: true)
if(sender.tag == 24) {
datePickerView.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
} else if(sender.tag == 22) {
datePickerView.addTarget(self, action: #selector(handleDOBDatePicker(sender:)), for: .valueChanged)
}
}
print("tag: ", sender.tag)
}
@objc func handleDatePicker(sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
selectedEffectiveDate = dateFormatter.string(from: sender.date)
print(selectedEffectiveDate as Any)
}
这里的问题是,其他一些应该打开键盘的文本字段也会打开日期选择器,但不是所有的文本字段。是什么导致我没有得到请指导
【问题讨论】:
标签: ios swift uitableview datepicker