首页 > 解决方案 > SwiftUI 和 WidgetKit - 自动更新组件

问题描述

我正在使用 WidgetKit,我发现初始化的文本组件init(Date, style: Text.DateStyle)正在创建自动更新的文本。这很特别,因为 iOS 小部件通常需要设置关于何时更新视图的时间线。不幸的是,这些更新的安排是在​​操作系统的手中,基于有限的预算,因此是不可靠的。

您是否知道其他自动更新的 SwiftUI 视图(也可能在小部件中被动更新)?动画形状也很不错。

我已经尝试过使用发布计时器,这在小部件中不起作用。

标签: textswiftuiwidgetupdatingwidgetkit

解决方案


根据Apple 的文档,唯一可自我更新的 SwiftUI 视图是Text,配置为显示相对日期或时间。有关详细信息,请参阅在小部件中显示动态日期

选项包括:

Text(futureDate, style: .relative)
Text(futureDate, style: .offset)
Text(futureDate, style: .timer)
Text(aprilFirstDate, style: .date)
Text("Date: \(aprilFirstDate, style: .date)")
Text(startDate ... endDate)
Text("The meeting will take place: \(startDate ... endDate)")

推荐阅读