swift实现简单的日历制作

       由于我开发的ERP系统项目中需要自己写个签到日历,所以我也花了点时间研究了日历,我写的这个日历满足了ERP系统的需求,另外写了一个简单的Demo,愿和大家一起走向大神道路。

     先上图看看项目日历截图吧!今天是2015-12-19(红色数字代表今天时间), 下个月是2016-01.就发两张截图吧。学完日历里之后,下面再教大家一个算法!


swift实现简单的日历制作_第1张图片
2015-12-19(今天时间)


swift实现简单的日历制作_第2张图片
2016-01

一: 界面搭建

1.上面提供的效果图,现在开始动手写代码. 来新建一个工程,取名为“FUWUCalenderDemo”

swift实现简单的日历制作_第3张图片
新建工程,取名FUWUCalenderDemo

2.新建完工程。我们需要考虑,写一个日历需要哪些思路。先想想实现日历的控件。左边是点击上一个月,这是个button; 中间是显示日期的,这是个label;右边是点击下一个月的,这是个button。下面是放日历的时间,我们用collectionView来实现,自定义collectionViewCelll。

3.先把布局的代码贴上。控件都用!声明,代表这个控件不能为空,必须是前面的类型.


swift实现简单的日历制作_第4张图片
声明控件属性

    纯代码添加控件的代码有点长哈,坚持住,你写完这些,然后你会发现写个日历很简单的。

swift实现简单的日历制作_第5张图片
把需要的控件显示出来

4. 写完添加控件的代码,显示的效果,如图下: 是不是很像日历的造型了,我们只要做下时间的处理的,把时间传进去就可以了。


swift实现简单的日历制作_第6张图片
添加完控件显示的

二:数据传入(二里的内容比较重要,也是日历实现的重点)

注: date: 表示传入的时间是当前时间. 比如今天是2015/12/19

1.算出当前月份的第几号(今天19号)

2. 算出当前是第几月份(当前12月份)

3. 算出当前的年份(当前年份是2015年)

4.算出每个月份的1号对应的星期几(这个月1号对应星期二)

5.算出当前月份的天数

6. 算出上个月

7.算出下个月

这些问题是实现日历需要的问题,罗列出来之后,我们一个问题一个问题的把他解决,最后解决了,我们可以自己写个日历了O(∩_∩)O~。。

看图解释:

swift实现简单的日历制作_第7张图片
日历的数据源

三: 界面和数据都准备好,现在只需要把数据和界面联系起来,所有写的日历很快就完成了哈~~加油!!


1.接下来,我们先声明两个时间属性,一个今天的时间(显示生活的时间), 一个是系统的时间(系统的时间).

2.再接下来。我们在collection的内容显示方法里把数据和界面显示联系起来 :func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell


swift实现简单的日历制作_第8张图片
把数据显示出来

3. 操作完第二步后,显示出来的效果如图:


swift实现简单的日历制作_第9张图片
显示数据

是不是很明显的看到2015/12/19,这个月1号对应星期二,这个月有31天。哦哦。。标题日期还没显示出来了,当前时间还没显示呢,不要紧,我们只要添加一行代码就行了。看效果图:


swift实现简单的日历制作_第10张图片
当前时间: 2015/12/19   橘黄色代表当天时间

4.点击上一个月和下一月的事件代码:


swift实现简单的日历制作_第11张图片
上一个月和下一个月代码

5.对于31号后面的空位不需要的,可以把第二列返回值的42修改为返回的当天数,当然这里需要算法计算。这个算法很简单的,看图计算当前月份的总天数


swift实现简单的日历制作_第12张图片
计算当前月占的格子数

 6. 执行完第五步的效果图:


swift实现简单的日历制作_第13张图片
效果图

7. 做一下自定义cell的优化。这个工程不修改了,直接拉线的。项目的cell优化代码上图,其实是懒加载哈!!


swift实现简单的日历制作_第14张图片
懒加载创建


四:恭喜你们又学会了新的知识点,其实很简单,但是一开始我们不懂,没有思维,不过坚持下来了,原来不管多难的东西就变的很简单很简单~~~

想要demo的请留言,邮箱。提前祝大家新年快乐O(∩_∩)O~

你可能感兴趣的:(swift实现简单的日历制作)