У меня есть tableView
, который содержит пользовательскую метку и кнопку (для установки галочки на изображениях).Я могу получить все тексты на этикетке правильно из массива. Но кнопка (отмеченные / не отмеченные изображения) при выборе показывает галочку, но она исчезает при прокрутке и показывает в другой ячейке.Ячейки повторно используются, но я не могу получить индивидуальный выбор и надлежащий результат.Дублирование происходит при прокрутке tableView
.А также массив не добавляет правильные результаты seletecd.
Ниже приведен код.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tvSelectGroup.dequeueReusableCell(withIdentifier: "cellnewgroup")
let device = userDeviceArray[(indexPath as NSIndexPath).row]
cell?.layer.cornerRadius = 10
cell.slider.tag = indexPath.row
if arraySensitivity.count==0
{
}else
{
cell.slider.value = Float(arraySensitivity[indexPath.row])
}
if let lbl = cell?.contentView.viewWithTag(1) as? UILabel
{
lbl.text = device
lbl.textColor = UIColor.white
}
if let btnChk = cell?.contentView.viewWithTag(2) as? UIButton
{
print("button...")
btnChk.addTarget(self, action: #selector(checkboxClicked(_ :)), for: .touchUpInside)
if btnChk.currentImage==#imageLiteral(resourceName: "Checkmark")
{
addDeviceInArray(cell: cell!)
}
}
print("arr\(arr)")
return cell!
}
@objc func checkboxClicked(_ sender: UIButton)
{
print("checked..")
sender.isSelected = !sender.isSelected
}
@objc func addDeviceInArray(cell:UITableViewCell)
{
let lbl = cell.contentView.viewWithTag(1) as? UILabel
if !arr.contains((lbl?.text)!)
{
arr.append((lbl?.text)!)
print("array in label\(arr)")
}
}