

Я использую timerInternal в своем отслеживающем представлении для живого таймера, когда таймер его запуск не учитывает границы и занимает всю ширину экрана, но когда он приостановлен, он учитывает границы динамического острова, как и ожидалось. Есть мысли, как это исправить? Что я делаю не так?
Text(timerInterval: Date()...context.state.endDate, countsDown: true, showsHours: true)
import ActivityKit
import SwiftUI
import WidgetKit
@available(iOS 17.0, *)
struct CompactTrailingView: View {
let context: ActivityViewContext
var body: some View {
if context.hasExpired || context.state.isPaused {
Text(formattedTime)
.font(.Widget.heading2Regular14.monospacedDigit())
.foregroundColor(.white)
.monospacedDigit()
} else {
Text(timerInterval: Date()...context.state.endDate, countsDown: true, showsHours: true)
.font(.Widget.heading2Regular14.monospacedDigit())
.foregroundColor(.white)
.monospacedDigit()
.multilineTextAlignment(.trailing)
}
}
var formattedTime: String {
if context.hasExpired {
return "00:00"
}
let remaining = max(context.state.remainingDuration, 0)
let hours = Int(remaining) / 3600
let minutes = Int(remaining) / 60 % 60
let seconds = Int(remaining) % 60
if hours == 0 {
return String(format: "%02d:%02d", minutes, seconds)
}
return String(format: "%02d:%02d:%02d", hours, minutes, seconds)
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... the-screen
Мобильная версия