Как добавить метку в содержимое ячейки календаря в MBCalendarKit?
Я использую MBCalendarKit для настройки календаря. Я хочу добавить к текстовым меткам в каждой ячейке календаря. Для справки загрузите пример кода с github " https://github.com/MosheBerman/MBCalendarKit".
Редактировать:
Для создания нескольких меток я использовал цикл for. В чем дело?
NSMutableArray *dateButtons = [NSMutableArray array];
for (NSInteger i = 1; i <= 42; i++) {
DateButton *dateButton = [DateButton buttonWithType:UIButtonTypeCustom];
dateButton.calendar = self.calendar;
[dateButton addTarget:self action:@selector(_dateButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
UILabel *travelTime = [[UILabel alloc] initWithFrame:CGRectMake(3, 23, 20, 20)];
travelTime.font=[travelTime.font fontWithSize:9];
[travelTime setTextColor:[UIColor blueColor]];
travelTime.text = @"9";
UILabel *workTime = [[UILabel alloc] initWithFrame:CGRectMake(30, 23, 20, 20)];
workTime.font=[workTime.font fontWithSize:9];
[workTime setTextColor:[UIColor orangeColor]];
workTime.text = @"9";
[dateButton addSubview:travelTime];
[dateButton addSubview:workTime];
[dateButtons addObject:dateButton];
}
self.dateButtons = dateButtons;
1 ответ
Если вы используете более старую версию MBCalendarKit, вам, вероятно, придется изменить класс CKCalendarCell напрямую, чтобы показывать пользовательский контент внутри ячеек.
MBCalendarKit 5 имеет некоторые изменения, которые позволяют добавлять пользовательский контент в ячейки. Реализовать CKCustomCellProvider
протокол в вашем собственном коде. Есть две части, которые вам нужно реализовать:
- Метод customCellClass.
- CalendarView: willDisplayCell: inContext: метод.
Если вы хотите заменить исходное содержимое ячейки своим собственным, то вам следует создать собственный подкласс UICollectionView и вернуть этот класс из customCellClass. Внутри calendarView:willDisplayCell:inContext: вы бы настроили свою ячейку с ограничениями автоматического размещения.
Если вы хотите изменить содержимое ячейки по умолчанию, вы можете вернуть CKCalendarCell.class
из customCellClass, а затем calendarView:willDisplayCell:inContext: предоставит вам экземпляры ячейки по умолчанию, которую вы можете изменить по своему усмотрению.
Отказ от ответственности: я автор MBCalendarKit