在视图交换期间,setAnimationTransition之前UITableView显示失真

时间:2009-07-25 15:31:58

标签: uitableview animation uiview core-animation distortion

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

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

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

线索赞赏。谢谢!

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

这也发生在另一块房地产中,它似乎来自一个使用自定义高度设置的表格视图单元格(用于调整其中的文本大小)。

我在我的代码中丢弃了无数个断点(其中包含大小,创建和诸如此类的东西),并且在转换期间没有一个中断。

我甚至尝试将我的表格视图放在 UIView 中,并将其定位为转换。没有区别。

来自API文档:

  

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

这一切都很好,但我没有在转换过程中更新任何视图或子视图。 (至少不是故意的!再次,请参阅关于断点的说明。没有任何事情被击中。)

1 个答案:

答案 0 :(得分:0)

惊人的。

答案:在这种情况下,它似乎只发生在...... Simulator 中! 在设备上,没关系。

我当时认为这样一个普通的转换将会在模拟器和设备上呈现相同的效果。

我错了。因此,如果您在模拟器上看到动画过渡故障,请挂在那里。毕竟它可能没问题。