UITableViewCellでフォームを作成しています。このフォームには、プロトタイプのセルにlableとtextフィールドがあります。その画像はこちら TableView Story board Image私は動的にフォームを作成するために、識別子を使用しています 、私のコードはUITableViewCellスクロール後にデータが変更される
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個のフィールドを持つとしていますですフィールドの値の変更は変更されます。 助けてください。
テキストフィールドにテキストがあるデータソースを追跡する必要があります。したがって、 'tableView:(tableView:cellForRowAtIndexPath:)'に1があればそれを入れます。そうでなければ、セルが再利用されるためplaceHolderを配置します。 – Larme
**テーブルビューのセル( 'arrayTextField')のUI要素を含む配列を使用しないでください**。それはおそらくあなたの問題の理由です。 (データソース)モデルの設計を改善し、モデル内のデータを変更し、テーブルビューをリロードすることを検討してください。 – vadian
は、データソースを追跡する 'arrayTextField' @Larmeを使って、どのテキストフィールドにテキストがあるのかを調べるためにデータソースをどのように追跡するのですか?私は検索したが何も見つけなかった。 – knownUnknown