我曾用于TKCalendarDayView
在特定日期显示日事件,但问题是当我在其上放置任何事件时,它始终显示在当前日期。
那么有人可以帮助我使用 Tapku Library 解决这个问题吗?
谢谢你的高级。
解决方案
还有另一种方法可以解决这个问题
如您所见,在以下方法中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = NSLocalizedString(@"Day View", @"");
self.data = @[
@[@"Meeting with five random dudes", @"Five Guys", @48, @0, @50, @30],
@[@"Unlimited bread rolls got me sprung", @"Olive Garden", @-24, @0, @-22, @0],
@[@"Appointment", @"Dennys", @15, @0, @18, @0],
@[@"Turkey Time...... oh wait", @"Chick-fela", @14, @0, @19, @0]];
}
self.data
已加载。
请注意,没有将事件添加到特定日期的方法。但是我们可以像这样添加一个事件:@[@"Meeting with five random dudes", @"Five Guys", @48, @0, @50, @30]
这@48
意味着后天的事件。这意味着事件发生
在今天(昨天)之前。
@[@"Unlimited bread rolls got me sprung", @"Olive Garden", @-24, @0, @-22, @0]
@-24
因此,首先您应该使用以下代码计算特定日期之间的间隔。
- (NSArray *)getTimeFromNow:(NSDate *)startDate endDateTime:(NSDate *)endDate
{
NSDate *todayDate = [NSDate date];
NSTimeInterval startFromNowSeconds = [startDate timeIntervalSinceDate:todayDate];
NSTimeInterval endFromNowSeconds = [endDate timeIntervalSinceDate:todayDate];
NSNumber *startHour = [NSNumber numberWithInt:startFromNowSeconds / (60 * 60)];
NSNumber *startMinute = [NSNumber numberWithInt:startFromNowSeconds / 60 - startHour.intValue * 60];
NSNumber *endHour = [NSNumber numberWithInt:endFromNowSeconds / (60 * 60)];
NSNumber *endMinute = [NSNumber numberWithInt:endFromNowSeconds / 60 - endHour.intValue * 60];
return @[startHour, startMinute, endHour, endMinute];
}
下面的代码应该被注释:
//if([eventDate compare:[NSDate dateWithTimeIntervalSinceNow:-24*60*60]] == NSOrderedAscending) return @[];
//if([eventDate compare:[NSDate dateWithTimeIntervalSinceNow:24*60*60]] == NSOrderedDescending) return @[];