2017-02-07 3 views
2

Я использую FSCalendar для реализации пользовательского календаря. Мне удалось сделать что-то похожее на следующее, изменив несколько методов и обработав различные режимы выбора и отмены выбора.FSCalendar multiple Выбор настроек

Вот скриншот того, что я до сих пор:

enter image description here

Теперь дизайнер хочет другой цвет для всех дат, лежащих между начальной и конечной даты. Пример: кроме 13 марта и 22 марта на скриншоте все даты должны быть другого цвета.

Как мне изменить цвет дат внутри диапазона, исключая конечные и начальные значения?

Или

Если кто-то может предложить другой проект/стручок, который будет создавать подобный интерфейс на скриншот выше и удовлетворяют требования цвета, который также работает!

ответ

1

Если кто-то хочет знать, как я обошел это, мне пришлось настроить новые свойства BOOL внутри каждой ячейки, чтобы отслеживать, что ячейка является первой, последней или находится внутри диапазона. Затем вызовите функцию configureCell, предоставленную в модуле, и настройте разные цвета на основе значений BOOL в соответствующих местах. Внутри FSCalendarCellconfigureAppearance:

if (self.isCellInsideDateRange){ 

    cellFillColor = [self colorFromHexString:mainDictionary[@"calendarLightColor"]].CGColor; 

}else if(self.isCellFirstCell || self.isCellLastCell){ 

    cellFillColor = [self colorFromHexString:mainDictionary[@"calendarDarkColor"]].CGColor; 

}else{ 

    cellFillColor = [UIColor whiteColor].CGColor; 
} 

И внутри FSCalendar.m внутри каждого cellForItemAtIndexPath проверки работает ли дату внутри клетки находится в пределах диапазона выбранных дат и установить соответствующие BOOL значения true или false

Я признаю, потребовалось довольно много обработки с моей стороны, и даже тогда я не смог разрешить некоторые сбои, которые начали возникать из-за повторного использования ячеек, и он не смог удалить повторно используемые ячейки. Скорее всего, это связано с комбинацией обработки, которую я должен был выполнять, чтобы обрабатывать различные конкретные приложения, добавляя новые свойства и время, когда появляются анимации цвета ячейки.

В конце я использовал JTAppleCalendar, который предлагает довольно много настроек, хотя и без анимации, но это небольшая вещь по сравнению с возможностями настройки.

Смежные вопросы