在iOS 7中,如果视图控制器被呈现的视图的背景颜色为[UIColor clearColor]
,则动画变得非常不稳定/冻结一半。
我想知道是否还有这个?
答案 0 :(得分:3)
这真的很有趣。不过,我认为它根本没有波动:这是导航控制器正在执行的实际动画,它只是看起来不同,因为推动的视图控制器有清晰的视图。
在类似的情况下考虑两个不透明的视图控制器(为了便于参考,将它们称为“A”和“B”)。给出一堆跨越视图整个宽度的内容 - 我在标签中使用了大部分字母。无论什么内容,只要你能看到它,并且明显地告诉它在动画结束时有多远。
现在推B.在它覆盖整个屏幕之前,看看你仍然可以看到的A内容的哪个部分。你会发现A的内容几乎不像你期望的那样在屏幕外;相反,它只是向左移动了一点点。在我的字母表测试中,我没有看到像“w”这样的晚期字母的尾部,而是看到一些“g”偷看。 A只改变了六到七个字母:
同样的事情发生在这里你的清晰视图。底层不透明视图移动,但不是一直离开屏幕边缘;相反,它的移动恰好足以让观众产生运动的印象,然后坐在那里直到过渡结束。之后,它可以从视图层次结构中删除(因为它理论上不再可见),因此消失了。
您可以使用iOS 7视图控制器转换API来规避此类行为。例如,请参阅objc.io article about them或WWDC session videos以获取更多信息。不过,您最终会重新实现整个幻灯片过渡,并且可能需要自己动手来支持向后滑动手势。
答案 1 :(得分:0)
我也面对这个问题。我通过自定义动画找到了修复: