- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从苹果文档中看到,在今天的小部件中,系统会拍摄快照,当需要绘制小部件时,它会先显示快照,然后在需要时执行更新。
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:
从上面来看,我希望我的代码表现得像这样:
在 viewDidLoad 或 widgetPerformUpdateWithCompletionHandler 或任何地方,在调用 NCWidgetProviding 协议(protocol)(例如 completionHandler(NCUpdateResult.NewData))之前,我设置了 UI。
然后我调用 completionHandler(NCUpdateResult.NewData)。
然后系统会拍摄我的 UI 的快照。
当用户关闭并打开今日小部件时,系统会立即呈现快照,然后检查是否需要更新。
需要时更新。
但是,如果我在绘制 UI 后关闭并打开今天小部件,它不会像上面那样运行。
有时,它会如我所料:当我打开小部件时,会立即显示我之前的 UI,然后它会更新。
但在其他时候,会显示空白而不是我之前的 UI,然后当然会重新绘制 UI,但这种“闪烁”很烦人。
我做错了什么吗?我误解了文件吗?会不会是因为我使用了自动布局和布局约束??
我已经尝试了所有我能想到的方法,但它只是有时有效而其他时候无效。
如何避免这种恼人的眨眼?
如有任何帮助或建议,我们将不胜感激。谢谢!
最佳答案
我终于解决了这个问题。感谢这个线程(Today Extension view flashes when redrawing)
这是因为我的小部件由于某种原因崩溃了。 (有时是我今天的小部件,有时是 iOS 小部件本身——可能是我的错..)
我必须研究它崩溃的原因,但至少现在我知道去哪里挖掘了。
关于iOS Today 小部件内容有时会消失并重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28134376/
我是一名优秀的程序员,十分优秀!