1

我曾用于TKCalendarDayView在特定日期显示日事件,但问题是当我在其上放置任何事件时,它始终显示在当前日期。

那么有人可以帮助我使用 Tapku Library 解决这个问题吗?

谢谢你的高级。

4

1 回答 1

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 @[];
于 2014-03-27T09:11:33.583 回答