• 用UILocalNotification实现一个闹钟(Swift)


    之前项目需求要实现一个闹钟,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年每个月至少写一篇博客的,结果第一篇就拖到月底了。。。以后争取早一点!

  • 相关阅读:
    Dom对象和jQuery对象区别 jQuery对象转换为Dom对象、、Dom对象转换为jquery对象
    jquery 1,2,3三个版本的下载、区别/以及jquery使用步骤,jQuery入口函数
    2021年3月4日 第一周开课博客
    2021年3月3日
    2021年3月2日
    2021年2月24日 记账本开发07
    2021年2月23日 记账本开发06
    2021年2月22日 记账本开发05
    程序员修炼之道读书笔记03
    2021年2月21日 记账本开发04
  • 原文地址:https://www.cnblogs.com/Phelthas/p/5169156.html
Copyright © 2020-2023  润新知