2014-03-01 85 views
0

在iOS 7中,如果视图控制器呈现的视图背景色为[UIColor clearColor],则动画变得非常不连贯/冻结一半。UINavigationController动画波涛汹涌

我想知道是否还有这个问题?

+0

你一定背景色是实际的原因是什么?你是否尝试过改变颜色并且看到不同的结果? – nhgrif

+0

@nhgrif是的,自己试试。推一个视图控制器的背景颜色设置为clearColor,你会看到。 – 0xSina

+0

@ 0xSina我刚试过。它不是缓慢或波涛汹涌,但它看起来很糟糕,推动视图位于顶部,后视图立即消失。 – Can

回答

3

这真的很有趣。不过,我认为它并不波动:这是导航控制器正在执行的实际动画,而且它看起来不同,因为推送的视图控制器具有清晰的视图。

在类似的情况下考虑两个不透明的视图控制器(为了便于参考,称它们为“A”和“B”)。给一大堆内容跨越视图的整个宽度 - 我在标签中使用了大部分字母。无论什么内容,只要你能看到它,并明确地告诉它在动画结尾附近有多远。

现在按下B键。在它覆盖整个屏幕之前,先看看A的哪些内容仍然可以看到。你应该会发现,A的内容几乎不像你期望的那样脱离屏幕。相反,它只是向左移动了一点点。在我的字母表测试中,我没有看到像“w”这样的延迟字母的末尾,而是看到了一些“g”字样。只有A移位的六个或七个字母的价值:

Before the transition Near the end of the transition (note the g)

同样的事情发生在这里与你清楚推视图。底层的不透明视图会移动,但不会完全离开屏幕边缘;相反,它只是移动给观众的运动的印象,然后坐在那里,直到过渡完成。之后,它可以从视图层次结构中删除(因为它理论上不再可见),因此消失。

您可以通过使用iOS 7视图控制器转换API来规避这种行为。例如,请参阅objc.io article about themWWDC session videos了解更多信息。不过,您将完成重新实现整个幻灯片切换过程,并且可能还需要完成自己的工作以支持再次滑动手势。

+0

感谢您的详细回应! – 0xSina

相关问题