我有一组UIViews及其控制器,它们表示“文档”中的不同页面。所有这些都在Apple的UIPageViewController的控制之下。
页面不一定具有静态图形内容。在查看任何给定页面时,内容可以根据用户操作而更改。发生这种情况时,我的代码会使用setNeedsDisplay
使所有适当页面的UIView无效。
但是直到 UIPageViewController尽其所有的魔法来翻动页面后,页面显示才会发生视图更新。
问题在于,在该动画期间,UIPageViewController似乎使用了旧页面像素的缓存版本。用户会看到旧内容,直到翻页动画结束为止,这时,有最后一次更新(由于之前的setNeedsDisplay
调用),然后显示了页面的最终正确版本。但是用户看到了这种(闪烁的)变化,这没有视觉上的意义,并且违反了GUI的幻想,即您看到的内容代表您的想象。
我无法调用每个视图的drawRect:
方法来强制改变像素; drawRect:
保留供系统调用。
那么如何使UIPageViewController更新或扔掉缓存的页面以防止这种视觉上混乱的情况?