iOS迅速开发之日历插件开发示例

  

本文介绍了iOS迅速开发之日历插件开发示例,分享给大家,具体如下:
  

  

效果图   

 iOS迅速开发之日历插件开发示例“> <br/>
  </p>
  <p> <强> 0 x01如何获取目前日期</强> </p>
  <p>关于日期,苹果给出了日期类,初始化一个日期类</p>
  
  <pre类=   让日期=日期()      

打印出来就是当前系统的日期和时间
  

  

那么如何单独获得当前年份,月份呢?

        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迅速开发之日历插件开发示例