gpt4 book ai didi

iOS Today 小部件内容有时会消失并重绘

转载 作者:行者123 更新时间:2023-11-29 12:29:29 27 4
gpt4 key购买 nike

我从苹果文档中看到,在今天的小部件中,系统会拍摄快照,当需要绘制小部件时,它会先显示快照,然后在需要时执行更新。

To help your widget look up to date, the system occasionally captures snapshots of your widget’s view. When the widget becomes visible again, the most recent snapshot is displayed until the system replaces it with a live version of the view.

To update a widget’s state before a snapshot is taken, be sure to conform to the NCWidgetProviding protocol. When your widget receives the widgetPerformUpdateWithCompletionHandler: call, update your widget’s view with the most recent content and call the completion handler, using one of the following constants to describe the result of the update:

从上面来看,我希望我的代码表现得像这样:

  1. 在 viewDidLoad 或 widgetPerformUpdateWithCompletionHandler 或任何地方,在调用 NCWidgetProviding 协议(protocol)(例如 completionHandler(NCUpdateResult.NewData))之前,我设置了 UI。

  2. 然后我调用 completionHandler(NCUpdateResult.NewData)。

  3. 然后系统会拍摄我的 UI 的快照。

  4. 当用户关闭并打开今日小部件时,系统会立即呈现快照,然后检查是否需要更新。

  5. 需要时更新。

但是,如果我在绘制 UI 后关闭并打开今天小部件,它不会像上面那样运行。

有时,它会如我所料:当我打开小部件时,会立即显示我之前的 UI,然后它会更新。

但在其他时候,会显示空白而不是我之前的 UI,然后当然会重新绘制 UI,但这种“闪烁”很烦人。

我做错了什么吗?我误解了文件吗?会不会是因为我使用了自动布局和布局约束??

我已经尝试了所有我能想到的方法,但它只是有时有效而其他时候无效。

如何避免这种恼人的眨眼?

如有任何帮助或建议,我们将不胜感激。谢谢!

最佳答案

我终于解决了这个问题。感谢这个线程(Today Extension view flashes when redrawing)

这是因为我的小部件由于某种原因崩溃了。 (有时是我今天的小部件,有时是 iOS 小部件本身——可能是我的错..)

我必须研究它崩溃的原因,但至少现在我知道去哪里挖掘了。

关于iOS Today 小部件内容有时会消失并重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28134376/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com