ios - 为什么我的 DatePicker 不隐藏?

标签 ios swift 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 
datePicker.hidden = datePickerHidden

关于ios - 为什么我的 DatePicker 不隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700931/

相关文章:

ios - 由于弹出窗口,在 iPad 上测试时应用程序崩溃

ios - 如何检测 Swift 2 的 UITextField 上的点击?

ios - 在 NSAttributedString API 中将 Range<Index> 与 NSRange 一起使用

ios - 在 Swift 中访问类函数内的函数

ios - dequeueReusableCell() 与 UITableViewCell()

swift - 计时器不会在 CollectionView 中正确更新 Swift

快速 Mac 操作系统 : make trackpad reflect display size for NSTouch events

javascript - jQuery 日期/时间选择器

javascript - 当我在 PHP 中包含 jQuery slider /横幅时,jQuery 日期选择器不起作用

html - 在 Firefox 中打印日期选择器时隐藏清除按钮