#50 cell 的重覆利用 — to-do list 的完成打勾

目的: 熟悉 table view cell 的重覆利用原理。

iOS App 的 table 擁有不錯的效能,因為 table 捲動時不用重新產生新的 cell,可以重覆利用之前產生過的 cell。

但它也帶來一些副作用,如果我們不注意,將讓 cell 顯示之前的內容,比方讓下圖的 to do app & music app 顯示錯誤的圖示,讓不該打勾的 cell 打勾,或是錯誤的歌曲 cell 上顯示播放中的動畫。

為了修正此問題,我們必須在 function tableView(_:cellForRowAt:) 裡將資料的正確內容設定到 cell 上,因此 array 的成員裡必須有個欄位儲存 todo 項目是否已完成,如此才能設定 cell 是否顯示打勾。

基本版:

1 在表格顯示待辦事項,想讀的書,想去玩的國家等,顯示的資料可先寫死在 array 裡。

2 利用點選 cell 顯示 / 取消打勾,當 cell 顯示打勾時表示已完成。請特別 注意表格上下捲動後,原本打勾的 cell 是否變沒打勾,原本沒打勾的 cell 是否變打勾。

(1) 如何設定 cell 打勾。

將 UITableViewCell 的 accessoryType 設為 .checkmark。

(2) 如何取消 cell 打勾。

將 UITableViewCell 的 accessoryType 設為 .none。

進階版:

1 加入新增,修改,刪除功能。

2 加入儲存功能,App 重新啟動後,可以看到之前的記錄和已完成的項目。

作品集

--

--

彼得潘的 iOS App Neverland
彼得潘的 100 道 Swift iOS App 謎題

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com