text - iOS 14 Text() 带天数计时器
问题描述
我正在 iOS 14 中构建一个小部件来倒计时直到事件发生的天数。我希望计时器具有天、小时、分钟和秒。到目前为止,我发现Text(someFutureDate, style: .timer)
(几乎)完美地工作。唯一的缺点是它只计数hours:minutes:seconds
。
目前,我的应用程序中的下一个事件是 79 天之后,因此显示 1,915 小时并不是最用户友好的事情。有没有人有一个聪明的技巧来展示days:hours:minutes:seconds
?
解决方案
有一个观点,你可以附加天数和计时器,比如
struct ContentView: View {
let days: String
var body: some View {
HStack {
Text(days)
Text(":")
Text(Date(), style: .timer)
}
}
}
您可以使用 TimelineProvider 并使小部件在每个午夜更新
func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
let dayremaining = 10 // your day from main app
let midnight = Calendar(identifier: .gregorian).startOfDay(for: Date())
let timeline = Timeline(entries: [ContentView(days:dayremaining)], policy: .after(midnight))
}
推荐阅读
- performance - 超过 100 个事件的完整日历性能
- graphql - Apollo Graphql 创建指令用自定义 GraphQLScalarType 替换 field.type
- java - 无法检索数据 Firebase 数据库
- r - 在美人鱼图中侧向融合箭头
- phpstorm - PhpStorm 列选项
- r - 从 conda 安装 gdal 2.3 后,sf R 包“与 2.0.0 以下的 GDAL 版本不兼容”
- regex - 如何从文件夹中获取文件名列表,并在特定位置拆分名称?
- javascript - 如何在哈巴狗中添加带有引导下拉菜单的 glyphicon glyphicon-calendar?
- html - 如何将按钮对齐到文本区域输入的右侧?
- javascript - (Next.js) 如何处理从 API 获取的文本中的内部链接?