本文介绍了iOS迅速开发之日历插件开发示例,分享给大家,具体如下:
效果图
让日期=日期()
打印出来就是当前系统的日期和时间
那么如何单独获得当前年份,月份呢?
var日期:Int []=[] 让日历:日历=日历(标识符:.gregorian) var比较:DateComponents=DateComponents () 比较=calendar.dateComponents ((。.month,要擦防晒霜),从:日期()) date.append (comps.year !) date.append (comps.month !) date.append (comps.day !)
苹果提供一个日历的类,其初始化参数标识符是选择日历类型,日历中有一个组件存放一些与日历有关的参数(如:日、月、年工作日等等,详见文档),于[0]是日期,日期[1],[2]日期分别为当前的年、月和日
<强> 0 x02如何获取所需月份的相关信息强>
写一个日历插件,首先要考虑的是当前月份第一天是周几,每个月有多少天,如何获取?
直接上代码
func getCountOfDaysInMonth (: Int、月:Int)→(数:Int,周:Int) { 让dateformat=dateformat () dateformat。dateFormat=" yyyy-MM " 让日期=dateformat。日期(从:字符串(年)+“-”+字符串(月) 让日历:日历=日历(标识符:.gregorian) 让范围=日历。范围(的:要擦防晒霜,在:.month:日期!) 让周=calendar.component (.weekday:日期!) 返回((范围# 63;.count) !、星期) } >之前dateformat可以提供一个日期的格式,自定义说明符如下
EEEE:代表一天的全名,比如星期一。使用1 - 3个E就代表简写,比如我。 嗯:代表一个月的全名,比7月如。使用1 - 3个M就代表简写,比如7月。 弟弟:代表一个月里的几号,比如07或者30。 yyyy:代表4个数字表示的年份,比如2016。 HH:代表2个数字表示的小时,比如08年或17。 mm:代表2个数字表示的分钟,比如01或59。 ss:代表2个数字表示的秒,比如2016。 打鼾声:代表3个字母表示的时区,比如GTM(格林尼治标准时间,东8时区为北京所在的时区,俗称东八区) GGG:公元前或者广告,即公元前或者公元 >之前日历。范围(的:要擦防晒霜,在:.month:日期!)这是日历上的一个方法,的是一个小部件,在是一个大组件,可以给出小组件在大组件的范围,范围。数就是这个月的天数;
工作日给出某一天是星期几,若只给出月份,则为该月第一天为周几
<强> 0 x03日历的开发强>
这里我们选择使用CollectionView,首先向故事板中拖入一个CollectionView,然后在ViewController中添加CollectionView的协议
扩展ViewController: UICollectionViewDelegate UICollectionViewDataSource {//返回部分的数量 func numberOfSections (collectionView: UICollectionView)→Int { 返回0 }//返回项的数量 func collectionView (_ collectionView: UICollectionView numberOfItemsInSection部分:Int)→Int { 返回0 }//返回细胞 func collectionView (_ collectionView: UICollectionView cellForItemAt indexPath: indexPath)→UICollectionViewCell { 让细胞=collectionView.dequeueReusableCell (withReuseIdentifier:“dateItem”: indexPath)一样!dateCollectionViewCell 返回单元格 } } >之前这三个函数是必须写上的,numberOfSections返回部分的数量,numberOfItemInSection返回部分中项的数量,cellForItemAt返回一个细胞
最需要注意的是,在ViewController中的viewDidLoad函数中,必须添加如下
覆盖func viewDidLoad () { super.viewDidLoad ()//做任何额外的设置加载视图后,通常从笔尖。//这两句话很重要! ! ! CalendarCollectionView。数据源=自我 CalendarCollectionView.delegate=自我 } >之前这里我们设置两个部分,第一个存放“一二三四五六日”,第二个存放日期
那么项数量就要分类考虑,部分为1时为7,部分为2时呢?为了简化,我们就返回42个。
iOS迅速开发之日历插件开发示例