Appearance : add `FSCalendarCaseOptionsHeaderUsesCapitalized` option

This commit is contained in:
Rémi Dayres 2020-01-24 15:32:38 +01:00
parent adba0b9a8d
commit 4ae56376e9
3 changed files with 18 additions and 5 deletions

View File

@ -29,7 +29,8 @@ typedef NS_ENUM(NSUInteger, FSCalendarSeparators) {
typedef NS_OPTIONS(NSUInteger, FSCalendarCaseOptions) {
FSCalendarCaseOptionsHeaderUsesDefaultCase = 0,
FSCalendarCaseOptionsHeaderUsesUpperCase = 1,
FSCalendarCaseOptionsHeaderUsesUpperCase = 1 << 0,
FSCalendarCaseOptionsHeaderUsesCapitalized = 1 << 1,
FSCalendarCaseOptionsWeekdayUsesDefaultCase = 0 << 4,
FSCalendarCaseOptionsWeekdayUsesUpperCase = 1 << 4,

View File

@ -158,7 +158,6 @@
cell.titleLabel.textColor = appearance.headerTitleColor;
cell.titleLabel.textAlignment = appearance.headerTitleAlignment;
_calendar.formatter.dateFormat = appearance.headerDateFormat;
BOOL usesUpperCase = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
NSString *text = nil;
switch (self.calendar.transitionCoordinator.representingScope) {
case FSCalendarScopeMonth: {
@ -190,7 +189,13 @@
break;
}
}
text = usesUpperCase ? text.uppercaseString : text;
BOOL usesUpperCase = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
BOOL usesCapitalized = (appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesCapitalized;
if (usesUpperCase) {
text = text.uppercaseString;
} else if (usesCapitalized) {
text = text.capitalizedString;
}
cell.titleLabel.text = text;
[cell setNeedsLayout];
}

View File

@ -103,9 +103,16 @@
{
_month = month;
_calendar.formatter.dateFormat = self.calendar.appearance.headerDateFormat;
BOOL usesUpperCase = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
BOOL usesUpperCase = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesUpperCase;
BOOL usesCapitalized = (self.calendar.appearance.caseOptions & 15) == FSCalendarCaseOptionsHeaderUsesCapitalized;
NSString *text = [_calendar.formatter stringFromDate:_month];
text = usesUpperCase ? text.uppercaseString : text;
if (usesUpperCase) {
text = text.uppercaseString;
} else if (usesCapitalized) {
text = text.capitalizedString;
}
self.titleLabel.text = text;
}