[英]EKCalendarEKCalendar CGcolor is not setting color in iPhone's calendar
我有兩種類型的事件,所以我設置了兩種不同的顏色來區分日歷中的事件,但是我無法設置EkCalendar的顏色,這是我的代碼
NSDateComponents* deltaComps = [[NSDateComponents alloc] init];
//[deltaComps setDay:3];
[deltaComps setMinute:02];
NSDate* tomorrow = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps toDate:[NSDate date] options:0];
//NSDate* dayAfterTomorrow = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps toDate:tomorrow options:0];
// You can use the event store now
EKCalendar *cal;
EKEvent *myEvent = [EKEvent eventWithEventStore:eventDB];
myEvent.title = @"Visit1";
myEvent.startDate = tomorrow;
myEvent.endDate = tomorrow;
myEvent.allDay = NO;
myEvent.notes = @"Visit 5:30p - 8:30p";
cal.CGColor=[UIColor yellowColor].CGColor ;
//myEvent.
//[myEvent setCalendar:[eventDB defaultCalendarForNewEvents]];
cal = [EKCalendar calendarForEntityType:EKEntityMaskEvent eventStore:eventDB];
//[myEvent setCalendar:cal];
[myEvent setCalendar:[eventDB defaultCalendarForNewEvents]];
EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:1.0f];
[myEvent addAlarm:alarm];
NSError *err;
//[eventDB saveEvent:myEvent span:EKSpanFutureEvents error:&err];
[eventDB saveEvent:myEvent span:EKSpanThisEvent commit:YES error:&err];
NSDateComponents* deltaComps1 = [[NSDateComponents alloc] init];
[deltaComps1 setDay:2];
NSDate* tomorrow1 = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps1 toDate:[NSDate date] options:0];
//NSDate* dayAfterTomorrow1 = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps toDate:tomorrow1 options:0];
// 2nd event
EKEvent *myEvent2 = [EKEvent eventWithEventStore:eventDB];
myEvent2.title = @"Visi1";
myEvent2.startDate = tomorrow1;
myEvent2.endDate = tomorrow1;
myEvent2.allDay = NO;
myEvent2.notes = @"Visit 9:00a - 8:30p";
[myEvent2 setCalendar:[eventDB defaultCalendarForNewEvents]];
EKAlarm *alarm1 = [EKAlarm alarmWithRelativeOffset:1.0f];
[myEvent2 addAlarm:alarm1];
[eventDB saveEvent:myEvent2 span:EKSpanThisEvent commit:YES error:&err];
if (err) {
[MBProgressHUD hideHUDForView:self.view animated:YES];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"%@", err] delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
}else {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:YES forKey:@"EVENTS_CREATED"];
[prefs synchronize];
[MBProgressHUD hideHUDForView:self.view animated:YES];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Visit events has been added to calendar." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
}
您要在未初始化的對象上設置“ CGColor”屬性:
EKCalendar *cal;
[...]
cal.CGColor=[UIColor yellowColor].CGColor ;
cal = [EKCalendar calendarForEntityType:EKEntityMaskEvent eventStore:eventDB];
您應該在設置顏色的調用之前移動日歷初始化。
另外,我不確定這是否可能。 嘗試執行此操作之前,請檢查calendar.immutable返回false。 我認為對於由用戶應用程序創建的日歷無權更改顏色,否則您可以運行應用程序,並且所有日歷都可以更改顏色...
我認為,如果您想使用自己的自定義顏色設置日歷,則可能需要自己創建一個日歷。 例如參見本教程
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.