FSCalendar多选自定义

FSCalendar multiple Selection customization

我正在使用 FSCalendar 来实现自定义日历。通过更改一些方法并处理各种 select 和 deselect 模式,我设法做出类似于以下内容的东西。

这是我目前的截图:

现在设计者想要为初始日期和最终日期之间的所有日期使用不同的颜色。示例:除了屏幕截图中的 3 月 13 日和 3 月 22 日之外,所有日期都应该是不同的颜色。

如何更改范围内日期的颜色,不包括最终值和初始值?

如果有人可以推荐另一个 project/pod 来创建与上面的屏幕截图类似的 UI 并满足颜色要求,那也行!

如果有人想知道我是如何做到这一点的,我必须在每个单元格内设置新的 BOOL 属性,以跟踪单元格是第一个、最后一个还是位于范围内。然后调用 pod 中提供的 configureCell 函数,并根据 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;
}

并在每个 cellForItemAtIndexPath 内的 FSCalendar.m 内检查单元格内的日期是否在所选日期范围内,并将适当的 BOOL 值设置为 truefalse

我承认它需要相当很多处理我的部分,即使那样我也无法解决由于单元[=31而开始发生的一些崩溃=] 并且它无法双端 re-usable 单元格。很可能是由于我必须处理各种应用程序特定情况、添加新属性以及单元格颜色动画出现所需的时间。

最后,我使用了 JTAppleCalendar,它提供了很多自定义功能,虽然没有动画,但与自定义功能相比,它是小事。