说明:
最近在项目中,需要添加一个日历签到的功能,在网上找了很久都没有找到合适的,又加上项目为Swift编写,所以硬生生的找了好几个小时,还是没有找到,然后不得已自己写了一个简易的Demo当然也引用了一些大牛的代码,望能帮助有与我相同疑惑的码友,我这里就不作简单的介绍了,上图为例:(这里我是传入的相同数据,以坐标为准,所以您看到的每一个月都是相同的地方)
代码
这里的话我就不给大家讲详细的实现步骤了,代码之后会上传,并且注释都会详细记载。
- 1、这里的话把他们分为三大模块
private let navigationBar = UIView() //主要标题栏
private let weekHeaderView = UIView() //星期标题栏
private let contentWrapperView = UIView() //日历内容栏
- 2、布局三大模块 然后给它们附上相对应的值
/**
布局三大控件
*/
private func commonInit(){
//添加导航栏
navigationBar.frame = CGRectMake(0, 0, self.frame.width, 40)
self.addSubview(navigationBar)
CreateNavigationBar()
//添加星期标题栏
weekHeaderView.frame = CGRectMake(10, CGRectGetMaxY(navigationBar.frame), self.frame.width - 20, 20)
self.addSubview(weekHeaderView)
CreateWeekHeaderView()
//添加日历内容栏
contentWrapperView.frame = CGRectMake(10,CGRectGetMaxY(weekHeaderView.frame),self.frame.width - 20 ,self.frame.height - CGRectGetMaxY(weekHeaderView.frame))
self.addSubview(contentWrapperView)
CreatecontentWrapperView(Nowdate)
}
- 3、您看到这里来的时候,日历的面板就已经显示,然后呢,我在里面设置了代理方法,专门针对上个月和下个月按钮所生成的,我给您传出了年和月,那么您就可以很方便的在保存的文件中或者数据库中找到该年该月的签到数据了
//MARK: - 定义一份协议
protocol CalendarDelegate{
/**
协议
*/
func CalendarNavClickView(calendar:CalendarView,year:Int,month:Int)
}
- 4、然后在这里的话您们可以去设置基本的颜色,在Demo中您可以看一下
// calendar.weekdayHeaderTextColor = UIColor.redColor() //周一到周五的颜色
// calendar.weekdayHeaderWeekendTextColor = UIColor.blueColor() //周六和周日的颜色
// calendar.componentTextColor = UIColor.redColor() //月份字体的颜色
// calendar.todayIndicatorColor = UIColor.yellowColor() //今日的背景色
// calendar.highlightedComponentTextColor //点击之后前景颜色
// calendar.selectedIndicatorColor = UIColor.orangeColor() //点击的背景色
// calendar.SigninList = signinList //默认签到的坐标
其实用起来就是这样的简单Demo地址
本章到此结束
欢迎各位码友随意转载并指正