Почему мой виджет обратного отсчета активности iOS Live происходит сбой, когда его статус активности меняется на устаревIOS

Программируем под IOS
Ответить
Anonymous
 Почему мой виджет обратного отсчета активности iOS Live происходит сбой, когда его статус активности меняется на устарев

Сообщение Anonymous »

Я создаю виджет Live Activity, который ведет обратный отсчет до будущего события. При запуске Live Activity я установил его staleDate равным дате будущего события. Это позволяет мне обновлять пользовательский интерфейс виджета, даже если мое приложение не находится на переднем плане по истечении времени события.
Вот упрощенная версия представления, которое я использую в интерактивной активности для экрана блокировки:

Код: Выделить всё

VStack {
VStack {
Text("The event will happen in")
Text(timerInterval: Date.now...context.state.event.date, countsDown: true)
}
.foregroundStyle(!context.isStale ? .primary : .secondary)

if context.isStale {
Text("The event is over!")
.foregroundStyle(Color.red)
}
}
Моя проблема в том, что виджет аварийно завершает работу при наступлении даты события (и, следовательно, staleDate). Вместо обновления пользовательского интерфейса виджет экрана блокировки тускнеет, а над ним появляется представление хода выполнения и бесконечно вращается.
Если я заменю Text(timerInterval: ClosedRange, PauseTime: Date?, countsDown: Bool, ShowHours: Bool) в виджете на Text(_ date: Date, style: Text.DateStyle), сбой не произойдет, и пользовательский интерфейс виджета обновится правильно когда его ActivityStatus изменится на ActivityState.stale. Однако Text(date, style: .timer) начнет отсчет после того, как дата пройдет, и мне не нужно такое поведение. Я хочу, чтобы обратный отсчет остановился на «0:00», что соответствует поведению Text(timerInterval:pauseTime:countsDown:showsHours:).
Как избежать этого сбоя, сохраняя при этом поведение Text(timerInterval:pauseTime:countsDown:showsHours:)?

Подробнее здесь: https://stackoverflow.com/questions/798 ... status-cha
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»