UITableView 編輯模式

讀了官方的這篇文章 Inserting and Deleting Rows and Sections 寫一個筆記

------

Table View 的編輯模式如下圖所示,左邊的按鈕是editing control, 右邊的recording control

TableView編輯模式

通常是用戶點擊 eding control 之后碧囊,Table View才會進入編輯模式失暴,執(zhí)行插入或者刪除峭沦,但這并不是絕對。也就是說,沒有進入編輯模式,也可以執(zhí)行插入或者編輯操作厚棵。

1. 編輯模式下的插入刪除

Table View 在接收到 setEditing:animated: 函數(shù)的信息之后進入編輯模式
通常,這個函數(shù)都是由用戶點擊導航欄上的編輯按鈕(一般都是這么設(shè)計擺放這個按鈕的)所觸發(fā)蔼紧。
在編輯模式下婆硬,每行都由 delegate 分配給左邊 editing control 和右邊 recording control

注意??: 如果是UIViewController 管理的Table View,它會在編輯按鈕被點擊的時候自動接收到 setEditing:animated: 函數(shù)的信息奸例,并在Table View 的相應函數(shù)被調(diào)用之前彬犯,就更新按鈕狀態(tài)或者響應其它任務(wù)。

在Table View 接收到信息之后查吊,它會給每個可視行的 UITableViewCell 對象發(fā)送同樣的信息谐区,然后發(fā)送一連串的信息給 data sourceDelegate

Table View插入刪除消息發(fā)送順序

在再次發(fā)送消息給對應可是行的單元格時,消息序列如下所示:

  1. Table View 調(diào)用tableView:canEditRowAtIndexPath: 方法(如果這個方法有在datasource中實現(xiàn)的話)逻卖。 這個方法決定了Table View對應的單元能不能被編輯宋列,優(yōu)先級高于editingStyle屬性,也就是說评也,無論cell’s editingStyle prop設(shè)置的是什么炼杖,都是以有實現(xiàn)的這個方法為準灭返。
  2. Table View tableView:editingStyleForRowAtIndexPath:方法(如果這個方法有在delegate中實現(xiàn)的話)。這個方法決定了editing control樣式和功能嘹叫。這時婆殿,Table View 已經(jīng)完全進入編輯模式。 顯示了每一個被允許編輯行的插入刪除模式罩扇。
  3. 用戶點擊editing control (插入或者刪除按鈕婆芦,開篇圖片中的左半部分)。這一步也就是點擊刪除按鈕時發(fā)送的確認消息喂饥。也就是通常出現(xiàn)在右半部分那個按鈕消约。
  4. Table view 發(fā)送 tableView:commitEditingStyle:forRowAtIndexPath:消息給 data source。 雖然這個方法在data source中是可選的员帮,但是如果要進行插入刪除操作的話一定要實現(xiàn)或粮。這個方法做兩家事情:
  • 發(fā)送 deleteRowsAtIndexPaths:withRowAnimation: 或者 insertRowsAtIndexPaths:withRowAnimation: 指示Table view 刷新顯示 。
  • 通過增刪數(shù)據(jù)模型數(shù)組同步更新數(shù)據(jù)模型捞高。

當用戶通過滑動來刪除的時候氯材,調(diào)用順序是跟上述有些許不同的。當用戶滑動的時候硝岗,Table View首先檢測tableView:commitEditingStyle:forRowAtIndexPath:是否有實現(xiàn)氢哮。如果實現(xiàn)了,Table View將發(fā)送setEditing:animated:給自己然后進入編輯模式型檀。在這個“滑動刪除”模式中冗尤,Table View不會顯示editing controlreordering control。因為這是一個用戶驅(qū)動事件胀溺,并且將消息包在tableView:willBeginEditingRowAtIndexPath:tableView:didEndEditingRowAtIndexPath:中裂七。通過實現(xiàn)這兩個方法,delegate將會正確顯示Table View 仓坞。

注意??: _Data source _不應該從tableView:commitEditingStyle:forRowAtIndexPath:的實現(xiàn)(OC中@implementation)部分的內(nèi)部調(diào)用setEditing:animated:背零。如果出于某種原因必須這么做的話,需要用performSelector:withObject:afterDelay:函數(shù)設(shè)置延遲調(diào)用扯躺。

雖然可以使用insertion control 作為觸發(fā)器來插入新的行捉兴,但是另外可供選擇的方法是在導航欄上添加一個“添加”按鈕。點擊按鈕發(fā)送action 信息給view controller,然后用一個modal view覆蓋table view來填寫新項的具體內(nèi)容录语,再把數(shù)據(jù)添加到數(shù)據(jù)模型數(shù)組中倍啥,最后調(diào)用tableView.reload()刷新table view

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澎埠,一起剝皮案震驚了整個濱河市虽缕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒲稳,老刑警劉巖氮趋,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伍派,死亡現(xiàn)場離奇詭異,居然都是意外死亡剩胁,警方通過查閱死者的電腦和手機诉植,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昵观,“玉大人晾腔,你說我怎么就攤上這事“∪” “怎么了灼擂?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長觉至。 經(jīng)常有香客問我剔应,道長,這世上最難降的妖魔是什么语御? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任峻贮,我火速辦了婚禮,結(jié)果婚禮上应闯,老公的妹妹穿的比我還像新娘月洛。我一直安慰自己,他們只是感情好孽锥,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著细层,像睡著了一般惜辑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疫赎,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天盛撑,我揣著相機與錄音,去河邊找鬼捧搞。 笑死抵卫,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的胎撇。 我是一名探鬼主播介粘,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晚树!你這毒婦竟也來了姻采?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤爵憎,失蹤者是張志新(化名)和其女友劉穎慨亲,沒想到半個月后婚瓜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡刑棵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年巴刻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛉签。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡胡陪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出正蛙,到底是詐尸還是另有隱情督弓,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布乒验,位于F島的核電站愚隧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锻全。R本人自食惡果不足惜狂塘,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳄厌。 院中可真熱鬧荞胡,春花似錦、人聲如沸了嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歪泳。三九已至萝勤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呐伞,已是汗流浹背敌卓。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伶氢,地道東北人趟径。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像癣防,于是被迫代替她去往敵國和親蜗巧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容