0
每當我點擊我的日期選擇器上方的行時,我的日期選擇器就不會像應該那樣隱藏。相反,當我點擊該行時,它會永久突出顯示爲深灰色,這通常是最初點擊某個內容時的情況。這是爲什麼發生?爲什麼我的datePicker不能隱藏?爲什麼我的DatePicker不隱藏?
class TableViewController: UITableViewController {
@IBOutlet weak var detailLabel: UILabel!
@IBOutlet weak var datePicker: UIDatePicker!
private var datePickerHidden = false
override func viewDidLoad() {
super.viewDidLoad()
datePickerChanged()
self.tableView.backgroundColor = UIColor.lightGray
}
@IBAction func valueChanged(_ sender: UIDatePicker) {
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .short
detailLabel.text = formatter.string(from:sender.date)
}
func datePickerChanged() {
detailLabel.text = DateFormatter.localizedString(from: datePicker.date, dateStyle: DateFormatter.Style.short, timeStyle: DateFormatter.Style.short)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
toggleDatepicker()
}
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
}
private func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if !datePickerHidden && indexPath.row == 1 {
return 0
}
else {
return 100
}
}
private func toggleDatepicker() {
datePickerHidden = !datePickerHidden
tableView.beginUpdates()
tableView.endUpdates()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}}
有什麼建議嗎?
移動'datePickerHidden = datePickerHidden'後'tableView.beginUpdates()'!如果'datePickerHidden'初始化爲'true',檢查它是否有效 – byJeevan
我試過了,沒有運氣 –
你是如何顯示選擇器的?點擊tableview的第一行,然後只會調用'toggleDatepicker'。你的代碼是這樣寫的。你是在故事板還是XIB中隱藏選取器 – Vinodh