微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS14小部件没有动态更改

如何解决iOS14小部件没有动态更改

我想更改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()重新加载时间线。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。