用UILocalNotification實現一個鬧鐘(Swift)

来源:http://www.cnblogs.com/Phelthas/archive/2016/01/29/5169156.html
-Advertisement-
Play Games

之前項目需求要實現一個鬧鐘,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年每個月至少寫一篇博客的,結果第一篇就拖到月底了。。。以後爭取早一點!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • HTML5定稿了,終於有一種編程語言開發的程式可以在Android和IOS兩種設備上運行了 本文轉載自: http://www.cnblogs.com/tuyile006/p/4103634.html(只作轉載, 不代表本站和博主同意文中觀點或證實文中信息) 2007 年 W3C (萬維網聯盟)立項
  • 一篇不錯的資源博文,轉載分享給大家: 1、Android團隊提供的示例項目 如果不是從學習Android SDK中提供的那些樣例代碼開始,可能沒有更好的方法來掌握在Android這個框架上開發。由Android的核心開發團隊提供了15個優秀的示例項目,包含了游戲、圖像處理、時間顯示、開始菜單快捷方式
  • 一、weak和strong 1.理解 剛開始學UI的時候,對於weak和strong的描述看得最多的就是“由ARC引入,weak相當於OC中的assign,但是weak用於修飾對象,但是他們都不會造成引用計數加1;而strong則相當於OC中規定retain,它會造成引用計數加1”。 ARC的原理:
  • 觸摸事件 iOS中的事件: 在用戶使用app過程中,會產生各種各樣的事件。iOS中的事件可以分為3大類型: view的觸摸事件處理: 響應者對象: 在iOS中不是任何對象都能處理事件,只有繼承了UIResponder的對象才能接收並處理事件。我們稱之為“響應者對象”。 UIApplication、U
  • 第一組UI組件:佈局管理器(以ViewGroup為基類派生的佈局管理器) 1.線性佈局 LinearLayout類 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orienta
  • 原理:轉場動畫push pop 菜單控制器做成左邊不透明一部分右邊透明,代碼里複製了之前控制器的視圖會在這裡顯示 菜單和菜單詳情是用的兩個不同的轉場動畫實現的 效果圖 demo鏈接:http://pan.baidu.com/s/1c0TaHDu
  • 前人經驗: 開源控制項:一個自定義的帶數字progress類:NumberProgressBar; WebViewClient就是幫助WebView處理各種通知、請求事件的。 WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,載入進度等 。
  • 引言 最近半年一直在學習JavaWeb,落下了iOS。如下寒假來臨,自己又有時間進一步學習iOS了。並且伴隨了在寒假準備搞定一個項目,工作之餘開始自己有意識的要提高,決定深入研究一下”網路”這一塊。 NSURLSession 自己開始寫的時候發現最基本的網路的請求不能用了,開始尋求答案。 如下:這是
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...