

Ричард Топчий на телеграмме
Calendarkit - это библиотека пользовательского интерфейса Swift Calendar для iOS и Mac Catalyst. Он выглядит похоже на приложение Apple Calendar из коробки, одновременно позволяя настройку при необходимости. Calendarkit состоит из нескольких модулей, которые можно использовать вместе или независимо.
Если у вас есть вопрос о программировании о том, как использовать Calendarkit в вашем приложении, создайте новую проблему GitHub с тегом вопроса.
Ознакомьтесь с примером примера для справки.
Создайте новую проблему из шаблона, чтобы сообщить об ошибке или запросить новую функцию.
Видео
Пример приложения
Calendarkit может быть установлен с помощью Swift Package Manager или с кокоподами.
Предпочтительный способ установки Calendarkit - через диспетчер пакетов Swift.
https://github.com/richardtop/CalendarKit.git ) и нажмите «Далее» .Добавление зависимостей пакета в ваше приложение
Чтобы установить его, добавьте следующую строку в свой Podfile:
pod 'CalendarKit'Добавление стручков в проект Xcode
DayViewControllerEventDataSource , чтобы показать события. Calendarkit требует, чтобы EventDataSource вернул множество объектов, соответствующих протоколу EventDescriptor , указывая всю информацию, необходимую для отображения конкретного события. Вы можете использовать класс Event по умолчанию в качестве модели или создать свой собственный класс, соответствующий протоколу EventDescriptor .
// Return an array of EventDescriptors for particular date
override func eventsForDate ( _ date : Date ) -> [ EventDescriptor ] {
var models = myAppEventStore . getEventsForDate ( date ) // Get events (models) from the storage / API
var events = [ Event ] ( )
for model in models {
// Create new EventView
let event = Event ( )
// Specify DateInterval
event . dateInterval = DateInterval ( start : model . startDate , end : model . endDate )
// Add info: event title, subtitle, location to the array of Strings
var info = [ model . title , model . location ]
info . append ( " ( datePeriod . beginning! . format ( with : " HH:mm " ) ) - ( datePeriod . end! . format ( with : " HH:mm " ) ) " )
// Set "text" value of event by formatting all the information needed for display
event . text = info . reduce ( " " , { $0 + $1 + " n " } )
events . append ( event )
}
return events
}После получения множества событий в течение определенного дня Calendarkit будет обрабатывать макет и отображение просмотра.
Чтобы ответить на ввод пользователя, переопределите Mehtods of DayViewDelegate , например:
override func dayViewDidSelectEventView ( _ eventView : EventView ) {
print ( " Event has been selected: ( eventview . data ) " )
}
override func dayViewDidLongPressEventView ( _ eventView : EventView ) {
print ( " Event has been longPressed: ( eventView . data ) " )
} Calendarkit поддерживает локализацию и использует Locale iOS по умолчанию для отображения месяцев и дневных имен. Первый день недели также выбран в соответствии с местом iOS.
По умолчанию Calendarkit выглядит похоже на приложение Apple Calendar и полностью поддерживает Dark Mode. При необходимости внешний вид Calendarkit может быть легко настроен. Шаги для применения пользовательского стиля следующие:
CalendarStyle (или скопируйте существующий)updateStyle с новым CalendarStyle . let style = CalendarStyle ( )
style . backgroundColor = UIColor . black
dayView . updateStyle ( style ) 
Список функций, находящихся в настоящее время в разработке, можно просмотреть на странице «Проблемы».
Прежде чем внести свой вклад, пожалуйста, просмотрите руководящие принципы и стиль кода.
Ричард Топчий
Calendarkit доступен по лицензии MIT. Смотрите файл лицензии для получения дополнительной информации.