To Do List — CRUD、UserDefault資料儲存、設定時間與推播通知

來介紹 To Do List 功能如何實作吧~~~

Anny
Oct 23, 2020

先來看看成果:To Do List 功能包含

Part.1

  • 新增、刪除事項
  • To Do List Button 打勾完成事項 (需判斷UIButton所在Cell位置)
  • 兩個 Section 一個代辦事項、一個完成事項 (兩個 Section 互相傳遞)

Part.2

  • 編輯 List 順序 (兩個 Section 不能互相編輯!固定在自己Section內移動!)

Part.3

  • 換頁更改代辦事項、加入備註note

Part.4

  • UserDefault 存取與讀取資料
  • 剛剛編輯的List順序,修改的代辦事項還有備註,關掉 App 重新開啟資料依然都在。

Part.5

  • 設定日期、推播通知 (實機測試!!!)

Part.6

  • 使用Switch 控制 Cell 顯示/隱藏

Part.7

  • 設置App icon 和啟動畫面

可以看這篇文章~~~

Part.1

  • To Do List Button 打勾完成事項 (需判斷UIButton所在Cell位置)
  1. TableView動態 cell 如何連結Button~~~ 看這篇

2. 如何判斷UIButton所在Cell位置~~~ 看這篇

  • 兩個 Section 一個代辦事項、一個完成事項 (兩個 Section 互相傳遞)

上方 UNDONE Section 按下 cell Button 移至下方 FINISH Section

  • 完成代辦事項移至下方 FINISH Section 字體“灰色斜體刪除線”

完整 NSMutableAttributedString屬性 可以看這篇~~~

Part.2

  • 編輯 List 順序 (兩個 Section 不能互相編輯!固定在自己Section內移動!)
  1. 先控制讓兩個 Section 不能互相編輯!固定在自己Section內移動!

2. 要編輯 List 順序需要使用 moveRowAt fromIndexPath

Part.3

  • 換頁更改代辦事項、加入備註note
  1. 換頁 要將 ToDoList的title傳到下一頁的text_Input
  2. 使用 prepare 將 segue.destination 目標指定給下一個頁面DetailTableViewController
  3. 就可以取得 DetailTableViewController 裡面設置的數值
  4. 將點選的todolist 值 傳給下一頁
  • 下一頁 修改項目以及設定時間的頁面 >>> DetailTableViewController
  • 檢查代辦事項是否為空!!!提醒使用者要輸入!!!

Part.4

  • UserDefault 存取與讀取資料
  • 剛剛編輯的List順序,修改的代辦事項還有備註,關掉 App 重新開啟資料依然都在。
  • 使用 Codable 把資料存成自己想要的形式

讀取時

寫入時

Part.5

  • 設定日期、推播通知 (實機測試!!!)
  • 在 AppDelegate 的 didFinishLaunchingWithOptions launchOptions 中加入
  • 詢問使用者是否願意收到通知的操作
  • 提醒推播通知
  • 在 主程式碼 中加入

詳細可以看 推播操作可以看這篇~~~

Part.6

  • 使用Switch 控制 Cell 顯示/隱藏
  • 在這裡使用的是 heightForRowAt indexPath
  • 設定 cell 的高度
  • 注意!!! 在 switch 中變化時要加入 以下程式碼
  • (我當初因為這個卡很久QAQ)
tableView.beginUpdates()tableView.endUpdates()

--

--

Anny
Anny

Written by Anny

If You Think You Can, You Can!

No responses yet