? ? ? ?表視圖一旦進(jìn)入刪除和插入狀態(tài),單元格的左邊就會(huì)出現(xiàn)一個(gè)“編輯控件”,如圖1所示。這個(gè)區(qū)域會(huì)顯示刪除控件“-”或插入控件“+”,具體顯示哪個(gè)圖標(biāo)在表視圖委托協(xié)議的tableView:editingStyleForRowAtIndexPath:方法中設(shè)定。
圖1、單元格編輯控件
圖2、單元格刪除控件
圖3、單元格刪除確認(rèn)控件
? ? ? ?要注意的是。在iOS中還有一個(gè)鮮為人知的刪除手勢(shì),那就是在單元格中從右往左滑動(dòng)手勢(shì),也會(huì)在單元格右邊出現(xiàn)一個(gè)Delete按鈕。
? ? ? ?插入數(shù)據(jù)時(shí),新插入的單元格會(huì)出現(xiàn)在表視圖的后面,如圖4所示。當(dāng)點(diǎn)擊插入控件時(shí),會(huì)增加一行數(shù)據(jù),此操作可重復(fù)進(jìn)行。
圖4、單元格插入
? ? ? ?刪除和插入單元格操作的核心是如下兩個(gè)方法:表視圖委托對(duì)象的tableView:editingStyleForRowAtIndexPath:方法和表視圖數(shù)據(jù)源對(duì)象的tableView:commitEditingStyle:forRowAtIndexPath:方法。刪除和插入單元格的時(shí)序圖如圖5所示。
圖5、刪除和插入單元格的時(shí)序圖
? ? ? ?setEditing:animated:方法設(shè)定視圖能否進(jìn)入編輯狀態(tài),然后調(diào)用委托協(xié)議中的tableView:editingStyleForRowAtIndexPath:方法進(jìn)行單元格編輯圖標(biāo)的設(shè)置。當(dāng)用戶(hù)刪除或修改控件時(shí),委托方法向數(shù)據(jù)源發(fā)出tableView:commitEditingStyle:forRowAtIndexPath:消息實(shí)現(xiàn)刪除或插入的處理。