根据 Apple 文档,“为了帮助您的小部件保持最新状态,系统偶尔会捕获小部件视图的快照。当小部件再次可见时,会显示最近的快照,直到系统将其替换为实时版本的视图。”
然而,我看到的是在准备好实时取景之前,快照已从屏幕上移除。这会产生一种闪光效果,其中旧快照被带出屏幕,视图在一瞬间空白,然后出现新视图。
开发人员是否负责在快照和实时视图之间进行无缝转换?如果是这样,这样做背后的策略是什么?我看不到任何直接控制该过渡的方法。
通过将数据加载移动到 widgetPerformUpdateWithCompletionHandler: 并在 viewWillAppear: 中保持绘图,我能够大大减轻这种影响,但我仍然看到通知中心每 15 次(左右)打开一次闪烁。