如何在MBCalendarKit中的日历单元格内容中添加标签?

时间:2016-05-04 07:25:58

标签: ios objective-c 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 个答案:

答案 0 :(得分:0)

如果您使用的是旧版MBCalendarKit,则可能需要直接修改CKCalendarCell类,以在单元格内显示自定义内容。

MBCalendarKit 5有一些更改,允许向单元格添加自定义内容。在您自己的代码中实现CKCustomCellProvider协议。您需要实现两个部分:

  1. customCellClass方法。
  2. calendarView:willDisplayCell:inContext:方法。
  3. 如果你想用你自己的替换原始单元格内容,那么你应该创建一个自定义的UICollectionView子类并从customCellClass返回该类。在calendarView中:willDisplayCell:inContext:您将使用自动布局约束设置您的单元格。

    如果要修改默认单元格的内容,可以从customCellClass返回CKCalendarCell.class,然后使用calendarView:willDisplayCell:inContext:将为您提供默认单元格的实例根据需要修改。

    免责声明:我是MBCalendarKit的作者