根据在单元格中的文本字段中输入的值动态增加表格视图单元格

Posted

技术标签:

【中文标题】根据在单元格中的文本字段中输入的值动态增加表格视图单元格【英文标题】:dynamically increase tableview cells based on entered value in textfield which is in cell 【发布时间】:2016-11-09 14:12:34 【问题描述】:

我是 swift 新手。我有一个带有一个自定义 UITableViewCell 的 UITableView。它有一个 UITextfield。默认 numberOfRows 为 1。

当我在该文本字段中输入一个整数值 (x) 并按 Enter 键时,表格视图应附加 x 个表格视图单元格,并且每个单元格都应有一个文本字段。

这是我的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell : TableViewCell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! TableViewCell
    cell.textField?.text = "Created"
    cell.textField.tag = indexPath.row
    cell.textField.addTarget(self, action: #selector(textFieldShouldReturn()), forControlEvents: <#T##UIControlEvents#>)

    return cell

【问题讨论】:

我不清楚你要什么。 “输入n个值”和“增加n倍”是什么意思? 【参考方案1】:

为了实现您想要在用户完成编辑时设置 IBAction 以检查插入的值是否为有效数字,如果它增加数据源上的记录数并调用 tableView.reloadData() 以刷新表。

在您的 cellForRowAtIndexPath 上,您可以对行进行验证,以防您想要与第一个不同的单元格,像这样

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    var cell: UITableViewCell!

    if indexPath.row == 0 
        cell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell
        cell.textField?.text = "Created"
        cell.textField.tag = indexPath.row
        UITextField().addTarget(self, action: #selector(customMethod), for: .editingDidEnd)
     else 
        cell = self.tableView.dequeueReusableCellWithIdentifier("otherCell") as! UITableViewCell
        cell.textLabel?.text = "Created programatically"
    

    return cell

【讨论】:

以上是关于根据在单元格中的文本字段中输入的值动态增加表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

表格视图单元格中的文本字段

从自定义单元格 iPhone 中的 textField 获取值

访问嵌入在单元格中的 textField

iOS:如何从 tableview 的自定义单元格中的 UITextField 访问值

动态增加表格行高

点击保存按钮并存储在字典中时获取表格视图单元格中的文本字段?