你的位置:首页 > 操作系统

[操作系统]用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年每个月至少写一篇博客的,结果第一篇就拖到月底了。。。以后争取早一点!

 




英国蜜月旅游行程参考英国特价旅游多少钱到英国游费用报价大全英国自助游攻略2015怎样去英国旅游《京城81号》上映 夜探北京第一凶宅(全文) 池州石门高 千年古村落的前世今生(组图) 安逸与环境并重 国内十大最宜养老的城市(组图) 南浔古镇 停驻在时光里的岁月(组图) 领略全球十大游客量最多的国家 全球25座城市最优惠订房时间表(图) 中秋旅游好去处 中秋旅游全家团队出游攻略(图) “笔墨寓禅心”郭雯山水画精品展详情介绍 香港到澳门的船票最便宜多少钱?要多长时间? 九寨沟一年四季景色是怎样的?九寨沟旅游攻略 夏季去香港买化妆品哪里比较便宜啊? 深圳打电话到香港是怎么收费的呢?贵吗? 2015百万葵园冬天有什么好玩的?广州番禺百万葵园几时去最好? 江门哪里有梅花节?江门赏梅花哪里好? 2015元旦深圳演唱会有哪些明星?深圳世界之窗元旦有哪些好玩的活动? 2015元旦深圳哪里有演唱会?深圳演唱会门票多少钱? AT83C24-TISIL Datasheet AT83C24-TISIL Datasheet AT83C24-TISUL Datasheet AT83C24-TISUL Datasheet AT83C25OK100-RDTIM Datasheet AT83C25OK100-RDTIM Datasheet 四川乐山大佛门票 四川乐山大佛门票 四川乐山大佛门票 台湾旅游特产 台湾旅游特产 台湾旅游特产 天津旅游攻略2013 天津旅游攻略2013 天津旅游攻略2013