【发布时间】:2020-11-05 06:56:24
【问题描述】:
我无法每分钟都刷新我的小部件。这是我的 getTimeline 函数;
let currentDate = Date()
let refreshDate = Calendar.current.date(byAdding: .minute, value: 1, to: currentDate)!
guard let widget = try? JSONDecoder().decode([myWidgets].self, from: widgetData)
let entry = widgetEntry(date: Date(), widget: widget[0])
let timeline = Timeline(entries: [entry], policy: .after(refreshDate))
completion(timeline)
WidgetCenter.shared.reloadAllTimelines()
我也尝试过每秒刷新一次,只刷新日期以显示当前时间,但几秒钟后它会停止刷新。
然后我从@pawello2222 尝试了下面的代码,但小部件没有正确加载;
var entries = [widgetEntry]()
let currentDate = Date()
let midnight = Calendar.current.startOfDay(for: currentDate)
let nextMidnight = Calendar.current.date(byAdding: .day, value: 1, to: midnight)!
for offset in 0 ..< 60 * 24 {
guard let widget = try? JSONDecoder().decode([myWidgets].self, from: widgetData)
let entryDate = Calendar.current.date(byAdding: .minute, value: offset, to: midnight)!
entries.append(widgetEntry(date: entryDate, widget: widget[0]))
}
let timeline = Timeline(entries: entries, policy: .after(nextMidnight))
completion(timeline)
【问题讨论】:
-
这是否回答了您的问题stackoverflow.com/a/64086553/12299030?
-
@Asperi 我尝试了那个解决方案,没有图像,一切都很好。但是当我将背景图像甚至系统图像放在 HStack 上时,它不会呈现,只有占位符。
-
我在您的代码快照中没有看到任何图像。您会根据上面的评论提供可重现的示例吗?
标签: ios swift swiftui widget widgetkit