0

我正在使用此代码将事件添加到设备,但是在设备中的日历上,它会在每个日期显示,直到事件的结束日期

NSString *GoalDate =  [[[DFDateFormatterFactory sharedFactory] 
dateFormatterWithFormat:@"yyyy-MM-dd" andLocaleIdentifier:@"en_US"]

stringFromDate:self.datepicker.date];

        [AppHelper saveToUserDefaults:GoalDate withKey:@"goalsdates"];

        NSInteger dummyInteger = [[AppHelper userDefaultsForKey:@"event"]intValue];

        if(dummyInteger!=0)
        {

        [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
         {
        if (!granted)
        { return;
        }
    EKRecurrenceEnd *endRecurrence = nil;

   endRecurrence = [EKRecurrenceEnd recurrenceEndWithEndDate:self.datepicker.date];

   EKRecurrenceRule *recurrence;

 if(dummyInteger==1)
 {
 recurrence= [[EKRecurrenceRule alloc] initRecurrenceWithFrequency: EKRecurrenceFrequencyDaily
 interval:1 daysOfTheWeek:nil daysOfTheMonth:nil  monthsOfTheYear:nil   weeksOfTheYear:nil  daysOfTheYear:nil setPositions:nil  end:endRecurrence];

 }

    if(dummyInteger==2)
    {

    recurrence = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency: EKRecurrenceFrequencyWeekly  interval:7 daysOfTheWeek:nil daysOfTheMonth:nil  monthsOfTheYear:nil   weeksOfTheYear:nil  daysOfTheYear:nil setPositions:nil  
end:endRecurrence];

    }


             if(dummyInteger==3)
             {

recurrence = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency: EKRecurrenceFrequencyWeekly interval:1 daysOfTheWeek:nil daysOfTheMonth:nil  monthsOfTheYear:nil   weeksOfTheYear:nil  daysOfTheYear:nil setPositions:nil  end:endRecurrence];

            }

             if(dummyInteger==4)
             {


 recurrence = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency: EKRecurrenceFrequencyYearly  interval:1 daysOfTheWeek:nil daysOfTheMonth:nil  monthsOfTheYear:nil   weeksOfTheYear:nil  daysOfTheYear:nil setPositions:nil  end:endRecurrence];
                              }



        EKEvent *event = [EKEvent eventWithEventStore:store];

        event.title = [AppHelper userDefaultsForKey:@"nameofagoal"];

             event.allDay = false;

             event.startDate =[NSDate date];

     //  event.endDate = [event.startDate dateByAddingTimeInterval:60*60*24*7];  //set 1 hour meeting

             event.endDate =  self.datepicker.date;




       // event.endDate = endDate;
        [event setCalendar:[store defaultCalendarForNewEvents]];

        NSError *err = nil;

        [event addRecurrenceRule: recurrence];      

        [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];

        savedEventId = event.eventIdentifier;  //this is so you can access this event later
    }];
4

1 回答 1

0

默认情况下,事件工具包添加从开始日期到结束日期的事件。如果您的开始日期和结束日期不同。然后它会从头到尾全天显示。如果您只想在活动的开始日和结束日显示活动,则必须添加两个名称相同但结束日期不同的活动。

您还可以allDay将事件的属性设置为 YES。在这种情况下,如果您在日历的日视图中,事件将不会覆盖整个屏幕。

于 2013-11-06T07:44:33.863 回答