Живая деятельность с датой обновления, таймер, секундомер с использованием пользовательского форматированияIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Живая деятельность с датой обновления, таймер, секундомер с использованием пользовательского форматирования

Сообщение Anonymous »

Я хочу иметь секундомер в моей живой деятельности, которая считается от 0. Он должен показывать только одну или две цифры и связанную единицу, например, "7s", "15m", "2H". < /P>
Я попытался использовать: < /p>

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

Text(startDate, style: .relative)
< /code>
Также есть: < /p>
Text(TimeDataSource.currentDate, format:
.stopwatch(startingAt: startDate, showsHours: true,
maxFieldCount: 1, maxPrecision: .seconds(1)))
Однако оба они не форматируют строку так, как я хочу. Если возможно, я хочу иметь полный контроль над форматированием. Я попытался написать свое собственное расширение: < /p>

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

extension FormatStyle where Self == SystemFormatStyle.CustomStopwatchStyle  {
public static func customStopWatch(date: Date) -> SystemFormatStyle.CustomStopwatchStyle {
return SystemFormatStyle.CustomStopwatchStyle(d: date)
}
}

extension SystemFormatStyle {
public struct CustomStopwatchStyle: Sendable, FormatStyle {

public typealias FormatInput = Date
public typealias FormatOutput = String

var d: Date

init(d: Date) {
self.d = d
}

public func format(_ value: Date) -> String {
return formattedDate(date: value)
}
}

Text(TimeDataSource.currentDate, format: .customStopWatch(date: startDate))
Как это не работает, потому что TimeDataSource .currentDate создает TimeDataSource не дата . Я мог бы изменить его на TimeDataSource : есть ли способ снова добраться до даты? Мой желаемый формат - это то, что Apple, кажется, продвигает в своих дизайнерских документах, почему нет способа легко достичь этого? Имейте в виду, что пара решений Swiftui не будет работать с ливеактивностью /activitykit , например, TimelineView или другие представления , которые вручную обновляются.

Подробнее здесь: https://stackoverflow.com/questions/795 ... formatting
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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