DSLCalendarView - 显示全行禁用日期

时间:2017-08-01 10:09:33

标签: ios objective-c dslcalendarview

我刚检查DSLCalendarView sample 请参阅以下有关运行示例

的屏幕截图

屏幕截图1

enter image description here

屏幕截图2

enter image description here

正如您所看到的那样,虽然它们都有其他月份的日期,但是第一个屏幕截图中的底行和第二个屏幕截图中的顶行已经显示。如何解决这个问题 - 如果该行具有上个月/下个月的所有日期,请不要显示该行? 向遇到过这个图书馆的用户提出这个问题。

1 个答案:

答案 0 :(得分:0)

我使用过这个库。在库中,我们有 DSLCalendarDayView.m文件

转到该文件并找到 - (void)drawDayNumber方法(最后写的)

用我的下面方法替换该方法。

- (void)drawDayNumber {
    if (self.selectionState == DSLCalendarDayViewNotSelected) {
        [[UIColor colorWithWhite:66.0/255.0 alpha:1.0] set];
    }
    else {
        [[UIColor whiteColor] set];
    }

    UIFont *textFont = [UIFont boldSystemFontOfSize:17.0];
    CGSize textSize = [_labelText sizeWithFont:textFont];

    CGRect textRect = CGRectMake(ceilf(CGRectGetMidX(self.bounds) - (textSize.width / 2.0)), ceilf(CGRectGetMidY(self.bounds) - (textSize.height / 2.0)), textSize.width, textSize.height);
    if(self.isInCurrentMonth)
        [_labelText drawInRect:textRect withFont:textFont];
}

用它来检查。它不会打印上个月和下个月的日期。仅显示当前月份日期。