【问题标题】:How to implement date in uiTextField present inside TableviewCell in ios如何在ios中TableviewCell中的uiTextField中实现日期
【发布时间】:2020-07-29 14:53:51
【问题描述】:

我可以使用简单的文本字段成功选择日期,但如果是表格视图单元格中的文本字段,我会遇到问题并且无法选择日期。据我所知,我的操作方法 donePressed 无法正常工作因为我可以在选择日期时在控制台中使用 dateformatter 打印日期。但我无法弄清楚如何在单元格中的文本字段中打印该日期。

 let datePicker = UIDatePicker()
    override func viewDidLoad() {
        super.viewDidLoad()
       tableView.reloadData()
        donePressed()
        //createDatePicker()
        // Do any additional setup after loading the view.
    }
    //Private function
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell
        let toolBar = UIToolbar()
        toolBar.sizeToFit()
        let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed))
        cell.dateText.inputAccessoryView = toolBar
        cell.dateText.inputView = datePicker
        cell.dateText.text = "\(datePicker.date)"
        toolBar.setItems([doneBtn], animated: true)
        return cell
    }
    @objc func donePressed() {
        let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell
        cell1.dateText.text = "\(datePicker.date)"
        self.view.endEditing(true)
    }
   
   /* func createDatePicker()
    {
        let toolBar = UIToolbar()
        toolBar.sizeToFit()
        let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed))
        dateText.inputAccessoryView = toolBar
        dateText.inputView = datePicker
        toolBar.setItems([doneBtn], animated: true)
    }*/

【问题讨论】:

  • 不要在tableView(_ tableView:cellForRowAt:) 之外拨打dequeueReusableCell(),不清楚您的问题到底是什么?日期选择器没有显示吗?谁是代表? donePresse() 方法没有被调用?无法检索日期?
  • 抱歉给您带来不便,因为这是我在 stackoverflow 上的第一个问题。基本上 datepicker 显示正确,但我无法在文本字段中输入选定的日期,因为没有调用 donepressed 方法。其他一切都是工作正常@Larme
  • 编辑您的问题,解释更多有效和无效的方法。这应该会增加用户的干预(因为您的问题更清晰、更具体),并且还避免用户阅读 cmets 来查找或在评论中提问。

标签: ios swift datepicker tableview


【解决方案1】:

将picker中的done函数更新为this。

    @objc func donePressed() {
        let cell1 = tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! TableViewCell
        cell1.dateText.text = "\(datePicker.date)"
        

self.view.endEditing(true)
}

您需要对单元格的引用,而出队不是为了获取对单元格的引用,而是将单元格出列以在表格视图中显示。

【讨论】:

  • 投票并标记为回复,很高兴它对你有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多