0

我在 iOS 中使用 JTCalender。我想将日期、月份名称等标签颜色设为相同颜色。截至目前,某些日期是黑色的。

在此处输入图像描述

请建议我怎样才能做到这一点?

4

1 回答 1

2

您可以使用 JTCalendar 委托方法自定义日视图

- (UIView<JTCalendarDay> *)calendarBuildDayView:(JTCalendarManager *)calendar
{
    JTCalendarDayView *view = [JTCalendarDayView new];
    view.textLabel.font = [UIFont fontWithName:@"Avenir-Light" size:13];
    view.textLabel.textColor = [UIColor blackColor];

    return view;
}
- (void)calendar:(JTCalendarManager *)calendar prepareDayView:(JTCalendarDayView *)dayView
{
    dayView.hidden = NO;

    // Test if the dayView is from another month than the page
    // Use only in month mode for indicate the day of the previous or next month
    if([dayView isFromAnotherMonth]){ 
        dayView.hidden = YES;
    }
    // Today
    else if([_calendarManager.dateHelper date:[NSDate date] isTheSameDayThan:dayView.date]){
        dayView.circleView.hidden = NO;
        dayView.circleView.backgroundColor = [UIColor blueColor];
        dayView.dotView.backgroundColor = [UIColor whiteColor];
        dayView.textLabel.textColor = [UIColor whiteColor];
    }
    // Selected date
    else if(_dateSelected && [_calendarManager.dateHelper date:_dateSelected isTheSameDayThan:dayView.date]){
        dayView.circleView.hidden = NO;
        dayView.circleView.backgroundColor = [UIColor redColor];
        dayView.dotView.backgroundColor = [UIColor whiteColor];
        dayView.textLabel.textColor = [UIColor whiteColor];
    }
    // Another day of the current month
    else{
        dayView.circleView.hidden = YES;
        dayView.dotView.backgroundColor = [UIColor redColor];
        dayView.textLabel.textColor = [UIColor blackColor];
    }

    // Your method to test if a date have an event for example
    if([self haveEventForDay:dayView.date]){
        dayView.dotView.hidden = NO;
    }
    else{
        dayView.dotView.hidden = YES;
    }
}

注意:代码在 Objective C 中,请使用 Swift 中的相应方法。

来源:https ://github.com/jonathantribouharet/JTCalendar

编辑:(正如 Kglay Kophyo 所建议的)您可以在 delegate 中更改月份的颜色。

- (UIView *)calendarBuildMenuItemView:(JTCalendarManager *)calendar 
{ 
   UILabel *label = [UILabel new]; 
   label.textColor = [UIColor redColor]; // your color return label; 
}  
于 2016-12-05T07:46:52.447 回答