iOS開發(fā)之tableView實(shí)現(xiàn)左滑刪除功能
前言
這幾天要實(shí)現(xiàn)左劃刪除的功能,發(fā)現(xiàn)網(wǎng)上很多帖子大多出自一人之手,然后都是 copy 的文章,其實(shí)都沒有那么復(fù)雜,只實(shí)現(xiàn)一個(gè)代理方法就可以了
方法如下
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { // 刪除數(shù)據(jù)源的數(shù)據(jù),self.cellData是你自己的數(shù)據(jù) [self.cellData removeObjectAtIndex:indexPath.row]; // 刪除列表中數(shù)據(jù) [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; } }
默認(rèn)刪除的文字為 Delete,要改為中文實(shí)現(xiàn)
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { return @"刪除";//默認(rèn)文字為 Delete }
下面這兩個(gè)代理方法不用寫也可以,默認(rèn)就是這樣
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }
如果你報(bào)了這個(gè)錯(cuò)誤:
'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (5) must be equal to the number of rows contained in that section before the update (5), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out)
你把代理方法中這兩個(gè)方法順序搞混了,先刪除數(shù)據(jù),再刪除 cell
[self.cellData removeObjectAtIndex:indexPath.row];
這個(gè)方法在前
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
這個(gè)方法在后
還有就是,別2到?jīng)]設(shè)置代理,tableView.delegate = self;
總結(jié)
以上就是關(guān)于iOS利用tableView實(shí)現(xiàn)左劃刪除功能的全部內(nèi)容了,希望本文的內(nèi)容對給iOS開發(fā)者們能有一定的幫助,如果有疑問大家可以留言交流。
- iOS應(yīng)用開發(fā)中對UIImage進(jìn)行截取和縮放的方法詳解
- iOS應(yīng)用開發(fā)中使用UIScrollView控件來實(shí)現(xiàn)圖片縮放
- iOS UITableView展開縮放動畫實(shí)例代碼
- iOS開發(fā)中Quartz2D控制圓形縮放和實(shí)現(xiàn)刷幀效果
- iOS實(shí)現(xiàn)點(diǎn)擊微信頭像(放大、縮放、保存)效果
- iOS tableView實(shí)現(xiàn)頭部拉伸并改變導(dǎo)航條漸變色
- iOS App中UITableView左滑出現(xiàn)刪除按鈕及其cell的重用
- 解決iOS11刷新tableview會出現(xiàn)漂移的現(xiàn)象
- IOS實(shí)現(xiàn)左右兩個(gè)TableView聯(lián)動效果
- iOS TableView頭視圖根據(jù)偏移量下拉縮放效果
相關(guān)文章
iOS App開發(fā)中使用設(shè)計(jì)模式中的單例模式的實(shí)例解析
單例模式是最簡單和基本的一種設(shè)計(jì)模式,下面我們就簡單解讀一下iOS中單例設(shè)計(jì)模式的用法,示例代碼還是為傳統(tǒng)的Objective-C,主要為了體現(xiàn)單例模式的思想,需要的朋友可以參考下2016-05-05objective-c實(shí)現(xiàn)點(diǎn)到直線的距離及與垂足的交點(diǎn)
這篇文章主要給大家介紹了利用objective-c實(shí)現(xiàn)點(diǎn)到直線的距離及與垂足的交點(diǎn)的相關(guān)資料,文中給出了詳細(xì)的實(shí)現(xiàn)思路和實(shí)現(xiàn)代碼,對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04iOS的UI開發(fā)中Modal的使用與主流應(yīng)用UI結(jié)構(gòu)介紹
這篇文章主要介紹了iOS的UI開發(fā)中Modal的使用與主流應(yīng)用UI結(jié)構(gòu),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12iOS實(shí)現(xiàn)多個(gè)垂直滑動條并列視圖
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)多個(gè)垂直滑動條并列視圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03針對iOS開發(fā)的一些Xcode使用技巧小結(jié)
這篇文章主要介紹了針對iOS開發(fā)的一些Xcode使用技巧小結(jié),Xcode是Mac上編寫iOS應(yīng)用的開發(fā)環(huán)境,需要的朋友可以參考下2015-12-12iOS開發(fā)中實(shí)現(xiàn)顯示gif圖片的方法
這篇文章主要介紹了iOS開發(fā)中實(shí)現(xiàn)顯示gif圖片的方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09iOS?Lotusoot模塊化工具應(yīng)用的動態(tài)思路
項(xiàng)目的不斷更迭,導(dǎo)致項(xiàng)目越來越大,越來越臃腫,為了讓項(xiàng)目更加條理,需要對項(xiàng)目進(jìn)行模塊化處理,為了減少模塊之間的耦合,于是就有了Lotusoot這個(gè)工具2022-08-08