之前項目需求要實現一個鬧鐘,github上找了半天發現都是很舊的代碼了,所以就準備自己寫一個,剛好最近在學習Swift,就用Swift寫了一個demo放在這裡:https://github.com/Phelthas/Demo_AlarmClock 效果如圖: 總結一下,備忘 界面的話一個DatePi
之前項目需求要實現一個鬧鐘,github上找了半天發現都是很舊的代碼了,所以就準備自己寫一個,剛好最近在學習Swift,就用Swift寫了一個demo放在這裡:https://github.com/Phelthas/Demo_AlarmClock 效果如圖: 總結一下,備忘 界面的話一個DatePicker加7個UIButton就搞定了,稍微有點問題的是如何表示哪幾天選中了,哪幾天沒選中。 這裡可以用數組實現,也可以用集合,但最簡單的是用一個16進位數來表示(也是github上看來的,原來自己用數組寫了一大坨。。。)即用0x111 1111 來表示全部選中,用0x000 0000 來表示全部沒選中,每一個1表示選中一天。 然後就可以移位運算符來運算button的selected,來表示這個button有沒有被選中 鬧鐘的話還是用UILocalNotification來實現。需要註意的是,UILocalNotification的重覆間隔只能是蘋果定義的一些值( NSCalendarUnit),且間隔不能太小(秒不管用),且每個app能設置的UILocalNotification個數有上限(貌似是128個) 所以這裡一個通知只能讓鬧鐘每周X的同一個時間響,如果要一個鬧鐘周一周二都響,就要定義2個UILocalNotification,如果7天都要響,就要7個通知。。。目前還真不知道有什麼其他的辦法,如果有知道的同學,望不吝賜教 確定周幾響的時候,需要根據NSCalendar來計算,用dateComponents的方式,這裡需要註意的是蘋果定義的周日的weekday是1(即認為周日是一周第一天),而我們一般習慣把周一作為每周的第一天,所以計算的時候需要轉換一下,轉換方法見demo 添加通知的時候,要給通知設置userInfo,將通知的identifier設置進去,作為通知的唯一標示符,否則無法取消; 這裡我是將通知的時間的時間戳作為一個字元串來作為這個通知的identifier
計劃2016年每個月至少寫一篇博客的,結果第一篇就拖到月底了。。。以後爭取早一點!