2017-03-19 18 views
0

をスクロールしたときに、私はインクリメント整数変数に新しい行を挿入バーボタンアイテムを持って変更します。カスタムUITableViewCellのは

enter image description here

class TableViewController: UITableViewController { 

    var personNo = 0 
    var data = [String]() 

    @IBAction func addPerson(_ sender: UIBarButtonItem) { 

     personNo += 1 

     tableView.beginUpdates() 
     data.append("Person \(personNo)") 

     tableView.insertRows(at: [IndexPath(row: data.count - 1, section: 0)], with: .automatic) 

     tableView.endUpdates() 

    } 

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

     let cell = tableView.dequeueReusableCell(withIdentifier: "newPerson") as! CustomCell 

     cell.lblPerson?.text = "Person \(personNo): " 

     // Configure the cell... 

     return cell 
    } 
} 

を行を追加するセルの値の変更は時にテーブルビューを動作しますが、スクロールさ:

enter image description here

なぜこの出来事はあるとどのように私は、EAの状態を保存することができますCHセル?あなたの目的のために、私はお勧め:あなたは

cell.lblPerson?.text = data[indexPath.row] 

余談で

cell.lblPerson?.text = "Person \(personNo): " 

を交換して、データ・ソース・アレイ(data

からデータを取得する必要があります

+0

使用データ配列:

あなたはindexPath.row値を使用することができます。それはなぜあなたが各セルで同じ価値を得るかということです。 – Pawan

答えて

1

カスタムモデルを使用する例:

struct Person { 
    var name : String 
    var amount : Double 
} 
+0

それは動作しますが、特定のフォーマットの "Person 1:" '' – iamhx

+0

でデータを追加する必要があります。 'Person ' 'Person \(indexPath.row - 1)を使用したい場合:" – vadian

+0

私は、各行のテキストフィールドの値を取得できるカスタムモデルを見ていますか?私は前に 'struct'を使ったことがありませんでしたが、試してみます – iamhx

1

変数はpersonNo個であるため、スクロール用にセルが生成されるときは、現在の値はpersonNoです。 ?の.text、personNoのみ変更された値が含まれているcell.lblPersonで値を示すため

cell.lblPerson?.text = "Person \(indexPath.row+1): "