2017-07-22 92 views
1

我將使用單元格中的按鈕刪除我的UITableView中的單元格。UITableview不會從超級視圖中刪除

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "ATTACHMENTCELL", for: indexPath) as! AttachmentTableViewCell 
    if let obj=dm.arrayImageTable[indexPath.row] as? [String:Any] 
    { 
     cell.lblTitle.text=obj["DocumentName"] as? String 
     //cell.tag=obj["EmployeeCode"] as! Int 
     cell.lblTitle.textColor=com.getfontColor() 
     cell.imgvw.image=obj["Imag"] as? UIImage 
     cell.btnDel.tag=indexPath.row 
     cell.btnDel.addTarget(self, action: #selector(removeFromTable(sender:)), for: .touchUpInside) 
    } 

    return cell 
} 


func removeFromTable(sender:UIButton) 
{ 

    var index:Int=sender.tag 
    if(index>=dm.arrayImageTable.count) 
    { 
     index=0 
     dm.arrayImageTable.remove(at: 0) 
     dm.arrayAttachedDoc.remove(at: 0) 
    } 
    else 
    { 
     dm.arrayImageTable.remove(at: index) 
     dm.arrayAttachedDoc.remove(at: index) 
    } 

    self.tblImage.deleteRows(at: [NSIndexPath.init(row: index, section: 0) as IndexPath], with: .left) 

    var btnFrame=self.btnApplyLeave.frame 
    btnFrame.origin.y=self.btnApplyLeave.frame.origin.y-30 
    self.btnApplyLeave.frame=btnFrame 
    if(dm.arrayImageTable.count<=0) 
    { 

     self.tblImage.removeFromSuperview() 
    } 
} 

但是我的UITableView不能刪除,雖然計數是0.任何人都可以看到我做錯了哪裏? 請幫我

+0

我建議在self.tblImage.removeFromSuperview()設置一個斷點,並檢查視圖調試是否真的刪除了視圖。也許設置hidden = true會做到這一點。 –

回答

0

據我猜測,在numberOfRows你已經返回arrayImageTable.count。

所以:

if(index>=dm.arrayImageTable.count) 
    { 
     index=0 
     dm.arrayImageTable.remove(at: 0) 
     dm.arrayAttachedDoc.remove(at: 0) 
    } 

永遠是錯的。因爲如果您返回numberOfRow的arrayImageTable.count,indexPath.row不能等於arrayImageTable.count。 試試這個:

var index = sender.tag == dm.arrayImageTable.count - 1 ? 0 : sender.tag 
dm.arrayImageTable.remove(at: 0) 
dm.arrayAttachedDoc.remove(at: 0) 
self.tblImage.deleteRows(at: [IndexPath.init(row: index, section: 0)], with: .left) 

希望它會幫助你。

相關問題