У меня есть массив из 10 событий, предположим, что текущее время 10 утра, а событие начнется в 11 утра. Каждое событие длится 30 минут, а промежуток между двумя событиями составляет 30 минут.
Теперь я могу показать, что вся необходимая информация на циферблате указана правильно, т. е. когда циферблат запускается, он говорит, что следующее событие состоится в 11:00, а когда первое событие завершится в 11:30, в 11:00: Циферблат 31:00 показывает, что следующее мероприятие начнется в 12:00.
Я могу сделать это все успешно.
Я сталкиваюсь с проблемой, когда хочу показать напоминание о первом событии всего за 15 минут до его начала.
Например, если первое событие дня начнется в 11:00, то циферблат покажет напоминание об этом первом событии только в 10:45, но не ранее 10:45.
Кроме того, как я могу удалить осложнение, когда последнее событие дня закончилось?
Я просмотрела видео осложнениях WWDC - 2015.
Я пытаюсь показать усложнение на CLKComplicationTemplateModularLargeStandardBody.
private func getTimeLineEntry() -> Date {
if shouldShowCountDown {
return startDate.addingTimeInterval(-15 * 60)
} else {
return startDate
}
}
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
// Call the handler with the current timeline entry
let headerTextProvider = CLKSimpleTextProvider(text: "Complication Updates")
let body1 = "My Title"
let body1TextProvider = CLKSimpleTextProvider(text: body1)
let body2TextProvider = CLKSimpleTextProvider(text: "My Subtitle")
let template = CLKComplicationTemplateModularLargeStandardBody(headerTextProvider: headerTextProvider, body1TextProvider: body1TextProvider, body2TextProvider: body2TextProvider)
let entry = CLKComplicationTimelineEntry(date: getTimeLineEntry(), complicationTemplate: template)
handler(entry)
}
Здесь startDate — 11:00, и я хочу показать напоминание об усложнении за 15 минут до события, то есть в 10:45. Я использовал логическую переменную, чтобы решить, является ли текущее время startDate › Current Date. Если да, то покажите обратный отсчет за 15 минут до.
getCurrentTimelineEntry
вы меняете содержание вашего усложнения в зависимости от того, есть ли текущее или предстоящее событие или нет. Вы также можете использовать этот метод для предоставления последовательности записей для вашей временной шкалы - person Paulw11   schedule 23.06.2021