swift实现简单的日历制作

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

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


2015-12-19(今天时间)


2016-01

一: 界面搭建

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

新建工程,取名FUWUCalenderDemo

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

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


声明控件属性

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

把需要的控件显示出来

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


添加完控件显示的

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

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

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

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

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

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

5.算出当前月份的天数

6. 算出上个月

7.算出下个月

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

看图解释:

日历的数据源

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


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

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


把数据显示出来

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


显示数据

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


当前时间: 2015/12/19   橘黄色代表当天时间

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


上一个月和下一个月代码

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


计算当前月占的格子数

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


效果图

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


懒加载创建


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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,050评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,536评论 4 61
  • 导图内容:学表情学书中第一章的总结。
    蜻蜓ing阅读 1,567评论 1 5
  • 亲爱的你,再见~我要用新的姿态来遇见你。不一样的我,不一样的你
    木棉锦言阅读 1,576评论 0 1
  • 昨天倾盆大雨下了一天。我在家里算了一天的量。还有心里在等待工作的通知,焦急的等待让人难熬。最近状态不是很好。有时候...
    莲花舒梓慧阅读 1,261评论 0 0

友情链接更多精彩内容