我已使用TKCalendarDayView
在特定日期显示日期事件,但问题是当我在其上放置任何事件时,它始终显示在当前日期。
所以有人帮我用Tapku Library解决这个问题吗?
感谢高级。
答案 0 :(得分:1)
<强>解强>
还有另一种方法可以解决这个问题
如您所见,在以下方法中:
- (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 @[];