私はテーブルビューでデータを追加しました。私は手動で「すべて選択」オプションを最初の位置にリストアするように手動で追加しました。同じものを選択する場合は選択して選択解除する必要があります。私は以下のコードを試してみましたが、そのは、いずれかが、私はこのswift 3.0複数選択ですべて選択する
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = ObjTableview.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SelectUserCell
for i in 0 ..< self.getStudentName.count {
cell.btnCheckbox.setImage(UIImage(named: "selectedItem"), for: .normal)
print (i) //i will increment up one with each iteration of the for loop
}
}
var unchecked = true
@IBAction func btnCheckBoxClick(_ sender: Any) {
if unchecked == true {
//(sender as AnyObject).setImage(UIImage(named: "selectedItem"), for: .normal)
cell?.btnCheckbox.setImage(UIImage(named: "selectedItem"), for: .normal)
//unchecked = false
let cello = ObjTableview.cellForRow(at: indexPath!)
print(cello!)
ObjTableview.reloadData()
}else
{
//(sender as AnyObject).setImage(UIImage(named: "unSelectedItem"), for: .normal)
cell?.btnCheckbox.setImage(UIImage(named: "unSelectedItem"), for: .normal)
// unchecked = true
}
}
あなたは 'UIImage(named:" selectedItem "'のみを設定しています。なぜforループですか?配列の最後の値だけが適用されました。他の問題は 'unchecked'値を更新する' btnCheckBoxClick'です。 –
配列にデータをロードすると、すべてのゼロがセットされ、セルを選択するとそのインデックス値は1になり、Arrayでu selectAllがすべて1になり、u unselectAllが配列にすべてゼロを入れた場合 –
* *セルフローからのテーブルビューセルをデキューしないでください。それは致命的な誤りです – vadian