swift tableView deleteRowsAtIndexPaths

本文介绍了在Swift中如何使用tableView的deleteRowAtIndexPaths方法删除指定的cell。关键在于将要删除的NSIndexPath添加到数组中,并在beginUpdates和endUpdates之间调用删除方法。同时,需要注意在实际操作中,删除数据源数组中的对应项以防止程序奔溃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*需要注意的是,deleteRowAtIndexPaths函数的第一个参数是一个NSIndexPath类型的数组,

如果要删除指定的cell(只删除一个cell的话)可以新建一个NSIndexPath类型的数组,将要删除的cellindexpath加入到新创建的数组中即可。第二个参数是删除指定CELL时的动画,可以根据自己的需要选择。(None为删除时没有动画效果)

另外一个要注意的地方是,deleteRowIndexPaths必须写在tableView.beginUpdates()tableView.endUpdates()中间,下面给出完整的例子*/

myTableView.deleteRowAtIndexPaths(indexPaths,withRowAnimation:.None)

 

假如我要删除的cellNSIndexPath nsIndexPath

Let nsIndexPaths = [NSIndexPath]()

nsIndexPaths.append(nsIndexPath)

myTableView.beginUpdates()

myTableView.deleteRowAtIndexPaths(nsINdexPaths,withRowAnimation:.None)

myTableView.endUpdates()

 

/*

Ps:还有一点,我没试过,大家可以试试,

如果你将tableView要显示的数据存放在一个数组中的话(假设数组名为data),当你删除一个指定的行之后要重新加载tableView的数据(tableView.reloadData()),我猜这时会出现一个问题(我没尝试过,只是猜测)如果你的tableView(tableView :UITableView,numberOfRowsInSection section: Int) ->Int函数返回的行数是data.count(data数组的元素个数),当你调用完tableView.reloadData()函数时,系统会自己重新执行tableView(tableView :UITableView,numberOfRowsInSection section: Int) ->Int函数和tableView(tableView:UITableView,cellForRowAtIndexPath indexPath :NSIndexPath) -> UITableViewCell函数,恭喜你程序奔溃!所以应该在tableView.reloadData()函数调前下加上 self.data.romoveAtIndex(nsIndexPath.row)//在数组中删除该cell的内容。

 

如果有不正确的地方欢迎大家指正,一起学习一起进步。我是一个刚进入ios开发的新人,我会不定期的分享一些我在工作中,学习中学到的新知识,希望对大家有用。QQ929562459

*/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值