1
ここではラジオボタンを有効にした後にラジオボタンを表示していますが、特定のセルの削除を選択した後に削除ボタンと編集ボタンが表示されますが、先行するラジオボタンがこのヘルプを避ける方法を有効にしていましたか?テーブルビューのセルでラジオボタンのインデックスパスを削除するにはどうすればよいですか?
、ここではあなたのdeleteメソッドに2行を追加します。この
@IBAction func selectRadioButton(_ sender: KGRadioButton) {
let chekIndex = self.checkIsRadioSelect.index(of: sender.tag)
_ = self.checkIsButtonEnable.index(of: sender.tag)
if sender.isSelected {
} else{
if(chekIndex == nil){
self.checkIsRadioSelect.removeAll(keepingCapacity: false)
self.checkIsRadioSelect.append(sender.tag)
self.checkIsButtonEnable.removeAll(keepingCapacity: false)
self.checkIsButtonEnable.append(sender.tag)
self.tableDetails.reloadData()
self.addressSelected = true
tableDetails.tableFooterView?.isHidden = false
tableDetails.reloadData()
}
}
}
func deleteAction(button: UIButton) {
let buttonPosition = button.convert(CGPoint(), to: tableDetails)
let index = tableDetails.indexPathForRow(at: buttonPosition)
self.tableDetails.beginUpdates()
shippingArray.remove(at:(index?.row)!)
self.tableDetails.deleteRows(at: [index!], with: .top)
self.tableDetails.endUpdates()
tableDetails.tableFooterView?.isHidden = true
self.addressSelected = false
self.tableDetails.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if (indexPath.section == 0)
{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! AddressTableViewCell
tableDetails.isHidden = false
myActivityIndicator.stopAnimating()
let arr = shippingArray[indexPath.row]
cell.deleteButton.tag = indexPath.row
cell.nameLabel.text = arr["name"] as? String
cell.addressLabel.text = arr["address"]as? String
let mobilenumber : Any = arr["number"] as AnyObject
cell.mobileNumberLabel.text = "\(mobilenumber)"
cell.radioButton.tag = indexPath.row
cell.editButton.tag = indexPath.row
cell.deleteButton.tag = indexPath.row
cell.editButton.isHidden = true
cell.deleteButton.isHidden = true
cell.deleteButton.addTarget(self, action: #selector(deleteAction(button:)), for: .touchUpInside)
let checkIndex = self.checkIsRadioSelect.index(of: indexPath.row)
if(checkIndex != nil){
cell.radioButton.isSelected = true
cell.editButton.isHidden = false
cell.deleteButton.isHidden = false
}
else
{
cell.radioButton.isSelected = false
cell.editButton.isHidden = true
cell.deleteButton.isHidden = true
}
return cell
}
既にcellForRowAtのbutton-> cell.deleteButton.tag = indexPath.rowを削除するタグ値を設定しています。そのタグ値にアクセスしてメソッドを削除し、button.tag値を使用して配列内の値を削除します –
削除する方法私は正確に理解できませんでしたか? @AshwiniChougale –
シンプルな、行を削除すると、選択した配列からそのインデックスも削除されます。 indexpath.row(eg.3)からデータを削除してリロードしています。だから基本的に3行のキューを削除した後、(4 - > 3)4インデックスデータは3に移動し、合計で1つ少ない項目を持っています。 – ChanWarde