3

我正在使用 FSCalendar 来实现自定义日历。通过更改一些方法并处理各种选择和取消选择模式,我设法制作了类似于以下内容的内容。

这是我到目前为止的屏幕截图:

在此处输入图像描述

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

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

或者

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

4

1 回答 1

2

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

我承认它需要我进行大量的处理,即使那样我也无法解决由于单元重用而开始发生的一些崩溃,并且无法将可重用的单元从队列中取出。很可能是由于我必须处理各种应用程序特定情况、添加新属性和单元格颜色动画出现所需的时间。

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

于 2017-02-18T06:04:05.077 回答