我正在使用FSCalendar来实现自定义日历。我设法通过改变一些方法并处理各种选择和取消选择模式来制作类似于以下内容的东西。
以下是我到目前为止的截图:
现在,设计师想要在初始日期和最终日期之间的所有日期使用不同的颜色。示例:除了屏幕截图中的3月13日和3月22日之外,所有日期都应该是不同的颜色。
如何更改范围内的日期颜色(不包括最终值和初始值)?
或
如果有人可以建议另一个项目/窗格,它将为上面的屏幕截图创建一个类似的UI并满足颜色要求,那也是有效的!
答案 0 :(得分:1)
如果有人想知道我是如何做到的,我必须在每个单元格中设置新的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;
}
在每个FSCalendar.m
内的cellForItemAtIndexPath
内,检查单元格内的日期是否在所选日期的范围内,并将相应的BOOL
值设置为true
或{{ 1}}
我承认它需要我非常很多处理,即便如此我也无法解决因细胞重复使用而导致的一些崩溃它无法释放可重复使用的细胞。最常见的原因是我必须处理各种应用程序特定情况的处理组合,添加新属性以及单元格颜色动画出现的时间。
最后,我使用了JTAppleCalendar,它提供了大量的自定义功能,虽然没有动画,但与自定义功能相比,它是一件小事。