我注意到 Tapku 日历网格根据月份的日期分布在 5x5 和 6x6 之间调整大小。例如,它显示 2012 年 3 月的 5x5 网格和 2012 年 9 月的 6x6 网格!对我来说,它会使 GUI 对齐出错,所以我希望网格始终为 6x6。我一直在研究 TKCalenderMonthView 的 rangeOfDatesInMonthGrid 方法,但没有了解它是如何创建网格的!谁能告诉我如何始终修复网格 6x6。
谢谢。
第二点的解决方案。如果要在选定日期上显示标记并从取消选择的日期中删除标记,请使用以下代码。(它不会显示蓝色标记)
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
NSLog(@"calendarMonthView didSelectDate");
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
[df setTimeZone:[NSTimeZone systemTimeZone]];
NSString *strqw=[df stringFromDate:d];
NSLog(@"%@",strqw);
NSString *stss=[strqw stringByAppendingString:@" 00:00:00 +0000"];
NSLog(@"%@",stss);
int k=0;
for (int i=0; i<[array1 count]; i++) {
if([[array1 objectAtIndex:i]isEqualToString:stss]){
[array1 removeObjectAtIndex:i];
k=1;
}
}
if(k==0)
[array1 addObject:stss];
[calendar reload];
}
NSArray *data=[[NSArray alloc] initWithArray:array1];
并在下面的方法中添加这一行
- (NSArray*)calendarMonthView:(TKCalendarMonthView *)monthView marksFromDate:(NSDate *)startDate toDate:(NSDate *)lastDate
这是我使用的一个小技巧:
在 viewDidAppear 我有
[calendar selectDate:[NSDate dateWithTimeIntervalSinceNow:-31*24*60*60]];
[calendar selectDate:[NSDate dateWithTimeIntervalSinceNow:0]];
而在
- (void) calendarMonthView:(TKCalendarMonthView*)monthView monthDidChange:(NSDate*)month animated:(BOOL)animated{
我只是检查日历的高度,然后做我需要做的任何事情。这样做是因为如果您在日历实例化后立即检查框架的高度,它将返回正常的 5*7 高度而不是 6*7。
希望有帮助!