如何使UIPageViewController的缓存页面无效?

时间:2018-12-30 16:52:48

标签: ios

我有一组UIViews及其控制器,它们表示“文档”中的不同页面。所有这些都在Apple的UIPageViewController的控制之下。

页面不一定具有静态图形内容。在查看任何给定页面时,内容可以根据用户操作而更改。发生这种情况时,我的代码会使用setNeedsDisplay使所有适当页面的UIView无效。

但是直到 UIPageViewController尽其所有的魔法来翻动页面后,页面显示才会发生视图更新。

问题在于,在该动画期间,UIPageViewController似乎使用了旧页面像素的缓存版本。用户会看到旧内容,直到翻页动画结束为止,这时,有最后一次更新(由于之前的setNeedsDisplay调用),然后显示了页面的最终正确版本。但是用户看到了这种(闪烁的)变化,这没有视觉上的意义,并且违反了GUI的幻想,即您看到的内容代表您的想象。

我无法调用每个视图的drawRect:方法来强制改变像素; drawRect:保留供系统调用。

那么如何使UIPageViewController更新或扔掉缓存的页面以防止这种视觉上混乱的情况?

0 个答案:

没有答案