0

问候!我正在尝试从 Apple 的TheElements示例应用程序中借用视图翻转概念。此示例使用一个容器UIView,您可以在其中在两个子视图之间进行交换。翻转是使用setAnimationTransition:forView:cache:和删除/添加每个子视图来实现的。

一般来说,翻转工作,我可以在我的两个视图之间交换(一个带有页眉/页脚的UITableView和一个MKMapView)。但是,在翻转表视图之前和之后,我的表视图的各个(一致选择的)区域都被消除了(使用表视图的背景颜色),我不明白为什么。

在绘图方面,我找不到关于表格视图的任何异常之处。在示例应用程序的情况下,视图是从头开始绘制的,但我希望这不会影响它!我真的希望它很简单——也许是UITableView属性设置?

线索赞赏。谢谢!

更新:当我放慢动画速度时,我开始了解被干扰的东西(尽管我仍然不知道为什么)。我的表头视图包含图像视图和标签视图。现在,想象一下这两个视图的CGRect(只有没有任何可见内容,只有背景颜色)被重新绘制到表格视图的下方,就在表格行的上方

这也发生在另一块似乎来自设置了自定义高度(以调整其中的文本大小)的表格视图单元格的不动产中。

我在我的代码中丢掉了大量的断点(东西被调整大小、创建等等),并且在转换过程中没有一个被击中。

我什至尝试将我的表格视图放在UIView中,并将其作为转换的目标。没有不同。

从 API 文档:

缓存可以提高性能,但如果将此参数设置为 YES,则在转换期间不得更新视图或其子视图。更新视图及其子视图可能会干扰缓存行为并导致视图内容在动画期间被错误地渲染(或在错误的位置)。您必须等到转换结束才能更新视图。

这一切都很好,但我不会在过渡期间更新任何视图或子视图。(至少不是故意的!再次,请参阅有关断点的说明。没有受到任何影响。)

4

1 回答 1

0

惊人的。

答:在这种情况下,它似乎只发生在......模拟器在设备上,这很好。

我在想这样一个普通的过渡将是那种在模拟器和设备上呈现相同的东西。

我错了。因此,如果您在模拟器上看到动画过渡故障,请坚持下去。毕竟可能还好。

于 2009-07-26T15:40:20.917 回答