【发布时间】:2011-01-18 23:09:26
【问题描述】:
有没有办法让drawRect动画从上一个场景到下一个场景?
(太棒了)你可以在 drawRect 中制作动画 - 试试看。您可以淡化、平移或动画任何其他属性。
但是,它从“新鲜”开始,从空白开始。 例如,如果您在 drawRect 中放置一个淡入动画块,前一个场景会消失并新场景将从白色淡出。
我想让屏幕从上一个图像(在 drawRect 的上一个循环中绘制)淡化为我刚刚绘制的新图像... err, am绘图。
有没有办法做到这一点,也许是通过操纵 drawRect 发生的事情来巧妙地做到这一点?
这似乎是一个非常常见的用例 - 从一个场景混合到下一个场景。
有人知道这个秘密吗?
当然,显然这可以在核心动画环境中或以许多其他方式完成,但是让 drawRect 从一个 drawRect 淡入到下一个是一个明显的想法。干杯。
令人震惊的更新感谢 WrightCS 的天才.....
多亏了 WrightCS,我们现在知道 drawRect 可以完美地处理动画。只需将此代码粘贴到任何 drawRect 的末尾并尝试一下:
self.alpha = 0.0;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
self.alpha = 1.0;
[UIView commitAnimations];
它将整个drawRect,无论多么复杂,都视为一个巨大的块,并将其包装在该动画中。是的,它甚至包括在屏幕外区域绘制、位图渲染或其他任何内容。一切都变得生动起来。谁知道?
手头的问题 - 如何让它从前一个场景开始动画而不是从空白开始?
【问题讨论】:
标签: iphone ios ipad cocoa-touch quartz-graphics