Вопрос или проблема
Какой отличный календарь с открытым исходным кодом для iOS? В основном я ищу использовать его как средство выбора даты, так что он не обязательно должен иметь все функции. Более важно, чтобы можно было настраивать внешний вид.
Старый пост, но вот он.
Проблема в том, что Apple не предоставляет вид календаря по умолчанию. Поэтому вы можете:
- Создать его сами:
Если вы решите пойти по трудному пути, вам потребуется отличный учебник. Один можно найти здесь. Он объясняет, как создать календарь на Swift с использованием UICollectionView. Этот подход хорош, потому что использует меньше памяти, чем если бы вы использовали UIViewController.
- Использовать уже разработанный
Если вы решите выбрать этот вариант, то существует множество календарей, созданных для iOS, которые можно найти на github. Большой проблемой будет преобразование его под вид и ощущения вашего приложения. Я долго не мог решить эту проблему и боялся создавать его сам из-за нехватки времени. Поэтому, пройдя через лучшие из них на github, я нашел библиотеку высшего класса, которая превосходит остальные. Ниже я представлю то, что нашел. Я также перечислю лучшие календари, с которыми я сравнивал его на github.
Победитель: JTAppleCalendar. Вы можете найти его на Cocoapods по этой ссылке или скачать на Github по этой ссылке. Эта маленькая библиотека не похожа на другие тем, что ее настраиваемость полностью в руках разработчика. ура Вы можете ознакомиться с некоторыми календарями, которые разработали пользователи для него здесь. И вы можете увидеть его учебные пособия по настройке здесь. Также доступна демонстрация, которую можно скачать прямо с github.
Кстати, если вы никогда не слышали о cocoapods, то потратьте 10 минут, чтобы узнать о них. Это самый простой способ интеграции сторонних библиотек в ваши iOS проекты.
Другие лучшие календари, с которыми я его сравнивал:
Почему они не смогли сравняться? Как отметил разработчик этого календаря в документации:
Другие календарные проекты на Github пытаются втиснуть каждую функцию в свой контроль, надеясь, что она удовлетворит требования программиста.
Это неправильный способ создания контролов.
Он оставляет разработчику крайне широкий выбор (в многих случаях неконвенциональных)
функций, которые он должен отсортировать, чтобы настроить календарь.
К тому же, насколько широк бы ни был выбор функций, разработчик всегда
ограничен предустановленным набором конфигураций, поставляемых с calendarControl.
Вы видите, как Apple создает свой UITableView, предполагая, каким вы хотите увидеть UITableView? Нет. И мы тоже не должны.
Ответ или решение
Вопрос касается поиска отличного открытого кода для календарного представления на платформе iOS. В первую очередь, целью является использование данного календаря в качестве выбора даты, поэтому обилие дополнительных функций не является критичным. Напротив, важна возможность его настройки под нужды пользователя.
Теория: Рассмотрим две возможные стратегии. Первая — создание календаря с нуля, что требует значительных ресурсов и времени. Вторая, более практичная стратегия — использование уже существующих библиотек. Apple не предоставляет стандартного решения для календарного представления, следовательно, разработчики вынуждены выбирать между этими двумя подходами.
Пример: Как упомянуто в предыдущем обсуждении, можно самостоятельно создать календарь, используя расширенные возможности UICollectionView
, что позволяет оптимизировать использование памяти. Однако если время ограничено, целесообразнее обратиться к готовым решениям.
Приложение: Среди множества доступных библиотек одно из лучших решений — это JTAppleCalendar. Данная библиотека предлагает высокую степень настройки, что позволяет интегрировать календарь под конкретные требования внешнего вида и функциональности вашего приложения. Пользователи сообщают об успешной реализации различных календарных интерфейсов на базе этой библиотеки, благодаря обширной документации и демо-примерам. Подключить библиотеку в ваш проект можно через CocoaPods
, что значительно упрощает процесс интеграции.
Другие популярные библиотеки, такие как CalendarView, FSCalendar, MBCalendarKit и CVCalendar, также заслуживают внимания. Однако JTAppleCalendar выделяется благодаря своей гибкости, избегая излишней функциональной перегрузки, как это происходит с другими решениями.
Подводя итог, если ваша задача заключается в создании кастомизированного интерфейса выбора даты без разработки с нуля, использование JTAppleCalendar представляется оптимальным решением.