Как добавить метку в содержимое ячейки календаря в 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 протокол в вашем собственном коде. Есть две части, которые вам нужно реализовать:

  1. Метод customCellClass.
  2. CalendarView: willDisplayCell: inContext: метод.

Если вы хотите заменить исходное содержимое ячейки своим собственным, то вам следует создать собственный подкласс UICollectionView и вернуть этот класс из customCellClass. Внутри calendarView:willDisplayCell:inContext: вы бы настроили свою ячейку с ограничениями автоматического размещения.

Если вы хотите изменить содержимое ячейки по умолчанию, вы можете вернуть CKCalendarCell.class из customCellClass, а затем calendarView:willDisplayCell:inContext: предоставит вам экземпляры ячейки по умолчанию, которую вы можете изменить по своему усмотрению.

Отказ от ответственности: я автор MBCalendarKit

Другие вопросы по тегам