Настройка FScalendar - PullRequest
       50

Настройка FScalendar

0 голосов
/ 04 марта 2020

Я новичок в программировании, использую FScalendar и хочу изменить название дня на два алфавита, т. Е. (SU, MO, TU .....), и я хочу удалить пробелы между ячейками?

Я пробовал в данной области, но не нашел решения:

@property (weak, nonatomic) FSCalendarAppearance *appearance;

Я приложил изображение для справки, в котором четко видны пробелы.

введите описание изображения здесь

Нужно ли менять этот код, чтобы получить нулевой разрыв между ячейками ???????

// Calculate item widths and lefts
    free(self.widths);
    self.widths = ({
        NSInteger columnCount = 7;
        size_t columnSize = sizeof(CGFloat)*columnCount;
        CGFloat *widths = malloc(columnSize);
        CGFloat contentWidth = self.collectionView.fs_width - self.sectionInsets.left - self.sectionInsets.right;
        FSCalendarSliceCake(contentWidth, columnCount, widths);
        widths;
    });

    free(self.lefts);
    self.lefts = ({
        NSInteger columnCount = 7;
        size_t columnSize = sizeof(CGFloat)*columnCount;
        CGFloat *lefts = malloc(columnSize);
        lefts[0] = self.sectionInsets.left;
        for (int i = 1; i < columnCount; i++) {
            lefts[i] = lefts[i-1] + self.widths[i-1];
        }
        lefts;
    });

    // Calculate item heights and tops
    free(self.heights);
    self.heights = ({
        NSInteger rowCount = self.calendar.transitionCoordinator.representingScope == FSCalendarScopeWeek ? 1 : 6;
        size_t rowSize = sizeof(CGFloat)*rowCount;
        CGFloat *heights = malloc(rowSize);
        if (!self.calendar.floatingMode) {
            CGFloat contentHeight = self.collectionView.fs_height - self.sectionInsets.top - self.sectionInsets.bottom;
            FSCalendarSliceCake(contentHeight, rowCount, heights);
        } else {
            for (int i = 0; i < rowCount; i++) {
                heights[i] = self.estimatedItemSize.height;
            }
        }
        heights;
    });

    free(self.tops);
    self.tops = ({
        NSInteger rowCount = self.calendar.transitionCoordinator.representingScope == FSCalendarScopeWeek ? 1 : 6;
        size_t rowSize = sizeof(CGFloat)*rowCount;
        CGFloat *tops = malloc(rowSize);
        tops[0] = self.sectionInsets.top;
        for (int i = 1; i < rowCount; i++) {
            tops[i] = tops[i-1] + self.heights[i-1];
        }
        tops;
    });

исходный файл ---- ->. FSCalendarCollectionViewLayout.m

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

@ ABTech Относительно этого I want to change days name into two alphabets i.e. (SU,MO,TU.....), попробуйте с модификацией на FSCalendarWeekdayView.m file на - (void)configureAppearance method на FSCalendar library. В Swift отметьте здесь

NSString * str = [weekdaySymbols[index] uppercaseString];
label.text = [str substringToIndex:2];

И относительно этого I want to remove the gaps between cells?, попробуйте это, как показано ниже, Да, вам нужно попробовать это @property (weak, nonatomic) FSCalendarAppearance *appearance;

    calendar.appearance.titleOffset = CGPoint.init(x: -50, y: 0.0)
    calendar.appearance.eventOffset = CGPoint.init(x: -50, y: 0.0)
0 голосов
/ 04 марта 2020

enter image description here Вы можете сделать это, добавив подпредставление в fscalendar для weekDays. Я добавил одно письмо, но вы можете добавить в соответствии с вашими требованиями. 1- создать представление enter image description here

2- enter image description here

3-

let week_days_view = weekDaysView.instanceFromNib() as! weekDaysView
    week_days_view.frame = self.fsCalendar.calendarWeekdayView.frame
    self.fsCalendar.calendarWeekdayView.addSubview(week_days_view)
...