文本字段中的swift 3 tableView复制自身

时间:2017-05-02 08:53:54

标签: ios iphone swift xcode swift3

我的第一行写作 将自己复制到底线

当我滚动时, 数据的位置正在发生变化

img1

img2

5 个答案:

答案 0 :(得分:0)

UITableView Cell中的数据被重复,因为Cell被重用,因此您需要跟踪单元格的数据,可能是您可以在索引排列的数组中添加数据。

答案 1 :(得分:0)

是的,这就是UITableview dequeCells的概念:因为它重用了单元格,所以如果有100个条目,一次只会创建有限数量的单元格以节省内存。 现在为了避免它,请使用包含所有值的数据源填充单元格视图。 如果您发现数据源中缺少某些值,请使用,例如:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! Tek101TableViewCell
    cell.selectionStyle = .none
    cell.siraLabel.text = ""
    cell.siraLabel.text = String(indexPath.row + 1) + ")"
    return cell
}

答案 2 :(得分:0)

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! Tek101TableViewCell

    cell.selectionStyle = .none

    cell.siraLabel.text = String(indexPath.row + 1) + ")"



    return cell
}

答案 3 :(得分:0)

您需要在textfield委托方法中设置值,如下所示:(根据您的需要)

如果您使用键盘上的返回按钮

       func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            let cell = textField.superview?.superview as! Tek101TableViewCell // track you view hierarchy
            cell. siraLabel?.text = textField.text
            textField.resignFirstResponder()
            return true
        }

如果您想跟踪价值结束编辑方法

func textFieldDidEndEditing(_ textField: UITextField){
    let cell = textField.superview?.superview as! Tek101TableViewCell // track you view hierarchy
    cell. siraLabel?.text = textField.text
}

答案 4 :(得分:0)

UITablview单元格中重复使用,这样就会发生。要解决此问题,您必须将所有记录保存在一个全局数组变量中。

您可以在用户插入时将所有输入存储在数组或字典中。然后你必须将这个数组值赋给CellForRow的每个单元格。

简而言之,你必须只处理数组。

希望这会对你有所帮助。