0

2 つのラベルとテキスト ボックスを持つカスタム セル クラスを持つテーブル ビューがあります。

結果セットはすべての行のラベルの 1 つ (名前) を表示し、2 番目のラベルまたはテキスト ボックスのいずれかを表示する if else ステートメントがあります。


label 1 label 2
joe blogs Student
road runner [TextBox]
etc...

ただし、行が画面外にスクロールされると、新しい行のラベル 2 は更新されず、古いデータが含まれますが、ラベル 1 は完璧です。


ラベル 1 ラベル 2
ジョー ブログ 学生
ロード ランナー 学生
など...

以下はコードスニペットです

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    //let size = CGSizeMake(30, 30)
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SBGestureTableViewCell


    if strPaymentMethod[indexPath.row] == "Student" && dctMemAttEventDetails["StuDiscVenue"]! as! String == "Yes"
    {
        cell.txtMemberPaid.hidden = true
        cell.lblPaymentMethod!.text = strPaymentMethod[indexPath.row]

    }

    else
    {
       cell.lblPaymentMethod.hidden = true
       cell.txtMemberPaid.hidden = false
    }

    cell.lblMemberName!.text = strFirstname[indexPath.row] + " " + strSurname[indexPath.row] + " : " + strPaymentMethod[indexPath.row]

    return cell
}

リクエストに応じて 2 つのスクリーンショット

2 番目のスクリーンショットは同じ情報を示していますが、たとえば、行 (Know itall) は現金で、テキストボックスが必要ですが、最初のスクリーンショットでは正しい「学生」というラベルが付いています (いくつか表示されます)。さらに下を見ると、2番目のスクリーンショットで他の人が正しくありません)

画面からスクロールしたときにセルが再利用されることに関係していることはわかっていますが、データは更新されず、特に if/else ステートメントのデータは適切に更新/再描画されません。

私が達成しようとしていることのスクリーンショットであなたの質問/コメントをクリアしてくれることを願っています. そうでない場合は、コメントしてください。私の問題を示す別のアプローチを試してください。さらに質問がある場合は、できるだけ早く回答してください。

あらゆる支援に感謝します。

これは、最初にロードされたときの tableView であり、画面から行がスクロールされていません
これは、下にスクロールしてから上に戻るときの tableView です

4

1 に答える 1