问题描述
我想更改ios14小部件的背景字体样式
这是我的代码
func getTimeline(in context: Context,completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [SimpleEntry] = []
//Steps
let SteGroupName : String = "group.com.ColorWidget.SmartTimeWidget"
let strStyle = UserDefaults.init(suiteName: SteGroupName)?.value(forKey: "NumberOfStyle_APP") as? String ?? "1"
let strBatteryShowOrNot = UserDefaults.init(suiteName: SteGroupName)?.value(forKey: "isBatteryShow_APP") as? String ?? "YES"
}
第一次使窗口小部件的更改完美地反映出来,但在其余时间中,窗口小部件的更改不会随最新更改而更新。
请提供任何帮助。
解决方法
对于您而言,每当在包含应用程序的应用程序组中更新UserDefaults时,您都需要致电
WidgetCenter.shared.reloadAllTimelines() // Or reloadTimelines(ofKind)
在包含应用的一侧(当它进入后台(或您希望的其他情况)时)。
然后,窗口小部件扩展程序将通过调用getTimeline()
重新加载时间线。