滚动后UITableViewCell数据发生变化

时间:2016-07-16 11:10:55

标签: ios iphone swift uitableview xcode6

我在UITableViewCell中创建一个表单,这个表单在原型单元格中有标签和文本字段。在这里查看其图像 TableView Story board Image。 我使用标识符动态创建表单,我的代码是

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("protocell", forIndexPath: indexPath) as! UITableViewCell

    var lable = cell.viewWithTag(1) as! UILabel
    lable.text = details[indexPath.row]
    lable.textColor = UIColor.brownColor().colorWithAlphaComponent(0.7)

    var textfield = cell.viewWithTag(2) as! UITextField
    textfield.placeholder = "Enter \(details[indexPath.row])"
    self.arrayTextField.append(textfield)
    if details[indexPath.row] == "Name" {
        textfield.placeholder = "Enter First \(details[indexPath.row]) Middle \(details[indexPath.row]) Last \(details[indexPath.row]) "
    }
    textfield.backgroundColor = UIColor.redColor().colorWithAlphaComponent(0.2)

    return cell
}

现在问题是我有18个字段,当我在字段中输入值并滚动视图以填充其余字段时,字段中的值更改会发生变化。 请帮忙。

2 个答案:

答案 0 :(得分:2)

创建UITableViewCell子类并覆盖prepeareForReuse函数 - 将单元格设置为默认模式。

夫特:

override func prepareForReuse() {
    super.prepareForReuse()

    //set cell to initial state here, reset or set values, etc.
}

根据您的评论 - 如何继承UITableViewCell

import UIKit

class MyCustomCell: UITableViewCell {
     // things that you can do here:
     // initialise your properties here. (label, textfield. etc)
     // layout subviews.
     // override superclass APIs.
}

答案 1 :(得分:0)

  1. 不要将文本字段存储在数组中,而应将数据源“详细信息”数组存储在数组中。
  2. 在文本字段中输入任何内容后,您将为该indexPath“详细说明”数组。
  3. UITableViewCell子类并创建一个 CustomTableViewCell ,并为您的文本字段标签提供IBOutlets以及不会让您的生活更轻松的内容
  4. CustomTablewViewCell 上设置方法,例如updateWithDetails(details),以便代码封装良好