如何以编程方式删除UITableView的第0行?

时间:2015-12-30 05:18:54

标签: ios swift uitableview nsindexpath

我有一个有桌面视图的应用。每分钟左右我都希望UITableView的第一行消失。让动画关闭会很不错。我假设我需要使用这样的东西:

let myNSIndexPath = [NSIndexPath(forRow: 0, inSection: 0)]
mainTableView.deleteRowsAtIndexPaths(myNSIndexPath, withRowAnimation:UITableViewRowAnimation.Fade)

这不起作用。我不确定如何正确使用IndexPath。我的表只有一个部分,我总是希望删除索引0处的单元格。要使其正常工作,必须采取哪些措施?

3 个答案:

答案 0 :(得分:3)

单程

使用 removeAtIndex

yourarray.removeAtIndex(indexPath.row) 

不要忘记重新加载表格视图

tableView.reloadData()

第二种方式

yourIndexPath = [NSIndexPath(forRow: 0, inSection: 0)]
yourtable.beginUpdates() //if you are performing more than one operation use this 
yourarray.removeObjectAtIndex(myNSIndexPath.row)
yourtable.deleteRowsAtIndexPaths(NSArray(object: yourIndexPath), withRowAnimation: UITableViewRowAnimation.Left)
yourtable.endUpdates() //if you are performing more than one operation use this 

获得帮助

答案 1 :(得分:2)

你可以删除这样的第一个单元格。

单程

   let myNSIndexPath = [NSIndexPath(forRow: 0, inSection: 0)]

    self.tableView.beginUpdates()
    self.arrayData.removeObjectAtIndex(myNSIndexPath.row) // also remove an array object if exists.
    self.tableView.deleteRowsAtIndexPaths(NSArray(object: myNSIndexPath), withRowAnimation: UITableViewRowAnimation.Left)
    self.tableView.endUpdates()

第二种方式

yourArr.removeAtIndex(0)
self.tableView.reloadData()

答案 2 :(得分:0)

在SWIFT 4中

您可以像这样删除行。

    let indexPathRow=sender.tag
    let indexPath = IndexPath(row: indexPathRow, section: 0)
    arrayList.remove(at: indexPathRow)
    mainTableView.deleteRows(at: [indexPath], with: .none)