先下載專案骨架-:https://github.com/appbrewery/EggTimer-iOS13 版面上中下三個 View 組成一組 Stack View,中間三個蛋是放在三個水平排列的 Stack View 裏面,也準備好會用到的圖片資源。
然後開始寫程式,這次首次使用 dictionary,就是一群 key-value 的組合,key and value 型態必須固定,用中括號括起來就可以了,在此用來儲存各種不同熟度的蛋所需烹煮的時間秒數。因各種熟度必須標示在按鈕上供使用者知悉,所以設定各 Label Title 是必要動作;按鈕動作觸發時,程式直接抓取觸發按鈕的 Label Title,並以此為 key 到 dictionary 中尋找對應的時間秒數放置於 totleTimer 變數中,完全沒有重複的工,不錯。Timer 設定每一秒執行一次 updateTimer(),此 function 必須加上 @objc 關鍵字以表示開放 object-c 呼叫 ,每次執行倒數計時並更新 progress bar。另有一細節是要考慮使用者正常操作程序有可能在不關閉 App 的情況下重複按很多次不同的按鈕,在加入 Timer 物件前必須用 invaliate() 清除先前的 Timer 物件。倒數計時完成時播放一段音頻。
為了驗證執行效果先將 Soft 改成 5 秒,執行結果正常。
https://youtube.com/shorts/XaeirOkAQlI
By Newman Chen 2022/7/6