2017-09-05 7 views
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 
     } 

And image for this is shown below

+1

既にcellForRowAtのbutton-> cell.deleteButton.tag = indexPath.rowを削除するタグ値を設定しています。そのタグ値にアクセスしてメソッドを削除し、button.tag値を使用して配列内の値を削除します –

+0

削除する方法私は正確に理解できませんでしたか? @AshwiniChougale –

+0

シンプルな、行を削除すると、選択した配列からそのインデックスも削除されます。 indexpath.row(eg.3)からデータを削除してリロードしています。だから基本的に3行のキューを削除した後、(4 - > 3)4インデックスデータは3に移動し、合計で1つ少ない項目を持っています。 – ChanWarde

答えて

0

のためのコードです。

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 

    **let checkIndex = self.checkIsRadioSelect.index(of: button.tag) 
    self.checkIsRadioSelect.remove(at:checkIndex)** 

    self.tableDetails.reloadData() 
} 
+0

ようこそ、そのママ – ChanWarde

関連する問題