2016-08-22 3 views
1

として最初のセルを返す保つ:テーブルビューが私のコードで選択し、[SWIFT】ここで

var currentRow = 0 
var cellTapped:Bool = true 


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

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

    if indexPath.row == currentRow { 

     if cellTapped == false { 

      cell.checkBox.checkState = .Unchecked 


     } else if cellTapped == true{ 

      cell.checkBox.checkState = .Checked 

     } 
    } 
    else{ 

     cell.checkBox.checkState = .Unchecked 

    } 

    return cell as UITableViewCell 
} 

tableview確認が選択されたセルとして最初のセルを返しますたびに、それはなぜですか?ここでの問題は何ですか?

答えて

1

そう

if indexPath.row == currentRow 
cellTapped = true 

この条件でそれが真である

var currentRow = 0 
var cellTapped:Bool = true 

を書きました。

この

var cellTapped:Bool = false 
+0

編集をご覧ください – Sofeda

0

細胞が再利用されてみてください。セルの独自のサブクラスを作成し、prepareForReuse()をオーバーライドし、そのセルの選択をリセットする必要があります。このanswerを見てください。

0

テーブル内のいくつかの行を選択してチェックボックスで表示する方法をお探しですか? さて、セルなどの再利用を手作業で行う手間がなくても、これを簡単に行うことができます。

基本的には、iOSのは、単一または複数選択tableView.allowsSelection = trueまたはtableView.allowsMultipleSelection = trueをやらせると、その後のtableViewの二つの機能selectRowAtIndexPathdeselectRowAtIndexPathを上書き/実装するプロパティを設定します。チェックボックスをオンまたはオフにします。

「UITableViewリファレンス」の章「選択範囲の管理」でhereをご覧ください。 すべての再利用などを手作業で制御する必要はありません。

関連する問題