2017-08-01 37 views
0

我只是檢查DSLCalendarView sample 請參閱上運行的示例DSLCalendarView - 禁用日期的全線顯示

截圖1

enter image description here

截圖2

下面的屏幕截圖

enter image description here

正如你所看到的那樣,第一張截圖的最下面的一行和第二張截圖的最上面的一行已經被顯示,儘管他們都有其他月份的日期。如何解決這個問題 - 如果所有日期都是上一個/下一個月,不要顯示該行?
向經驗過此庫的用戶提出此問題。

+0

如果這是我的用戶界面,我可能想要提供頂部和底部的行與其他月份的日期,但只需更改顏色和/或禁用非當月的可選日期。無論如何,DSLCalendarView的來源至少在三年內沒有更新過。有一些(顯然被忽略)來自其他貢獻者的請求和34個問題/增強。我還建議您查看一些93+分支,因爲其他人可能已經完成了您需要的更改。對於其他人或者你來說,這可能是一個機會來做出你需要的修復。 –

+0

@Nitish你檢查我的下面的答案? –

回答

0

我已經使用過這個庫。在圖書館,我們有DSLCalendarDayView.m文件

轉到該文件,並找到- (無效)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]; 
} 

用此檢查。它不會打印上個月和下個月的日期。只顯示當前的月份日期。

+0

如果(self.isInCurrentMonth)在繪製日期之前需要添加一個條件 –