iOS學(xué)習(xí)筆記02 UITableView 左滑刪除cell

很多人對(duì)于左滑刪除cell都不太會(huì),我今天花了點(diǎn)時(shí)間看了下這個(gè)系統(tǒng)原生的左滑刪除cell,很簡單,分幾步走就可以了。
第一步,就是簡單的創(chuàng)建列表tableview,然后就是設(shè)置

self.tableView.delegate = self;
self.tableView.datasource = self;

接下來就是簡單的實(shí)現(xiàn)代理方法了。

-(NSInteger) numberOfSectionsInTableView:(UITableView)tableView
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

這四個(gè)基本方法自不用多說,大家都知道的,接下來就是一些刪除要用到的方法。

第一個(gè):

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

其實(shí)很多方法看名字就知道可以實(shí)現(xiàn)什么,這個(gè)方法就是問你可不可以進(jìn)行編輯,編輯里面包括很多東西,也包括刪除這個(gè)事件??捶祷刂凳荵ES還是NO,YES就是可以編輯,反之就是不可以唄,當(dāng)然,你也可以根據(jù)條件判斷,哪一行可以編輯,哪一行不可以編輯。
第二個(gè):

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

這個(gè)就是返回單元格的編輯風(fēng)格,你是要做什么樣的編輯呢,這里只說做刪除編輯,所以直接返回return UITableViewCellEditingStyleDelete;就是代表刪除的。
返回return UITableViewCellEditingStyleInsert;這樣的就是插入的。
第三個(gè):

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

接下來就是一個(gè)比較個(gè)性化的設(shè)置方法。就是自定義刪除按鈕的名稱,想顯示啥就顯示啥,差不多就行,return @"刪除";像這樣就可以了
第四個(gè):

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
{
    [self.dataArr removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
}
else
{
    [self.dataArr addObject:@100];
    NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:self.dataArr.count - 1 inSection:0];
    [tableView insertRowsAtIndexPaths:@[newIndexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
}
}

這個(gè)方法我個(gè)人認(rèn)為應(yīng)該算是最重要的方法了,無論你的列表里面有沒有數(shù)據(jù),這個(gè)方法你都應(yīng)該寫上,一般的列表上顯示的數(shù)據(jù)都是由數(shù)組或者字典里的數(shù)據(jù)提取出來的,這個(gè)方法中你就需要在你提取數(shù)據(jù)的源頭進(jìn)行刪除數(shù)據(jù),不然即使及刪除了列表的行,也不管用,那條數(shù)據(jù)還是會(huì)顯示出來,或者什么地方?jīng)]弄好,直接是報(bào)錯(cuò),所以要注意這一點(diǎn)。在刪除模式中,順序很重要,稍微出一點(diǎn)錯(cuò)就會(huì)崩潰。像我上面寫的,要根據(jù)所在行刪除數(shù)組對(duì)應(yīng)的數(shù)據(jù),然后是更新界面。下面的那個(gè)else里面就是插入操作。
這樣就是基本完成了左滑刪除的功能。
(要是有哪些地方錯(cuò)了請(qǐng)指正我,我也是初學(xué)者,希望與大家共同學(xué)習(xí),共同進(jìn)步)
tableviewcell的左滑刪除Demo
這個(gè)demo里面我加了一個(gè)自定義的cell,注釋啥的也怎么加,要是真有人下載了,有看不明白的就直接留言找我就可以了哈。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,414評(píng)論 4 61
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,300評(píng)論 3 38
  • 讀書筆記摘錄如下。 1. “媽媽,如果有一天我真的不在了,你也不要為此傷心難過,我的人生雖然短暫,卻充滿著母...
    3e1094b2ef7b閱讀 2,021評(píng)論 0 3
  • 馬上到年關(guān)了,心中浮想起兒時(shí)過年的許多場景:藍(lán)藍(lán)的天空,嗖嗖北風(fēng)刮得好冷,腮幫凍得通紅,穿著哥哥穿過的八成新棉襖,...
    西貝悠哉閱讀 235評(píng)論 0 1
  • 我拍了很多照片。每到下午就頭痛。今天十分興奮有八分真意。感覺自己什么都懂。欺軟怕硬,毫無幽默,自言自語。 ???
    尋0閱讀 180評(píng)論 0 0

友情鏈接更多精彩內(nèi)容