我正在使用 FSCalendar 来实现自定义日历。通过更改一些方法并处理各种选择和取消选择模式,我设法制作了类似于以下内容的内容。
这是我到目前为止的屏幕截图:
现在,设计师希望初始日期和最终日期之间的所有日期都使用不同的颜色。示例:除了屏幕截图中的 3 月 13 日和 3 月 22 日,所有日期都应该是不同的颜色。
如何更改不包括最终值和初始值的范围内的日期颜色?
或者
如果有人可以建议另一个项目/pod 来创建与上面的屏幕截图类似的 UI 并满足颜色要求,那也可以!
我正在使用 FSCalendar 来实现自定义日历。通过更改一些方法并处理各种选择和取消选择模式,我设法制作了类似于以下内容的内容。
这是我到目前为止的屏幕截图:
现在,设计师希望初始日期和最终日期之间的所有日期都使用不同的颜色。示例:除了屏幕截图中的 3 月 13 日和 3 月 22 日,所有日期都应该是不同的颜色。
如何更改不包括最终值和初始值的范围内的日期颜色?
或者
如果有人可以建议另一个项目/pod 来创建与上面的屏幕截图类似的 UI 并满足颜色要求,那也可以!
如果有人想知道我是如何做到这一点的,我必须BOOL
在每个单元格内设置新属性,以跟踪单元格是第一个、最后一个还是位于范围内。然后调用configureCell
pod 中提供的函数,根据BOOL
相应位置的值设置不同的颜色。里面FSCalendarCell
configureAppearance
:
if (self.isCellInsideDateRange){
cellFillColor = [self colorFromHexString:mainDictionary[@"calendarLightColor"]].CGColor;
}else if(self.isCellFirstCell || self.isCellLastCell){
cellFillColor = [self colorFromHexString:mainDictionary[@"calendarDarkColor"]].CGColor;
}else{
cellFillColor = [UIColor whiteColor].CGColor;
}
在FSCalendar.m
每个cellForItemAtIndexPath
检查内部,单元格内的日期是否在所选日期范围内,并将适当的BOOL
值设置为true
或false
我承认它需要我进行大量的处理,即使那样我也无法解决由于单元重用而开始发生的一些崩溃,并且无法将可重用的单元从队列中取出。很可能是由于我必须处理各种应用程序特定情况、添加新属性和单元格颜色动画出现所需的时间。
最后,我使用了 JTAppleCalendar,虽然没有动画,但它提供了很多自定义功能,但与自定义功能相比,它是一件小事。