我过去一直用UIViewAnimation制作简单的动画,现在我可以看到苹果在+4.0中不鼓励使用这个类。我开始调查CATransitions和-animation。它提供了一些更细粒度的控制,但对于我有限的使用来说,它看起来确实有些臃肿。当我试图掌握平台上的可能性时,我遇到了一个兔子洞,里面有大量的核心动画、石英和打开的GLS,但动画上没有简单的东西,让我开始吧。
我需要在职位、alpha、比例尺和旋转之间“切换”,有时会同时出现在几个UIViews上,并为animationDidStart和didStop设置一个委托挂钩。有什么好的吐温引擎吗?处理过闪存和Java,这真的是我怀念的事情之一。
如果我使用CATransitions,我似乎只限于一次动画一个属性,即alpha,如果我必须同时移动和旋转UIView,我将不得不为每个属性设置单独的动画。如果我要使用CATransition,是否有一种方法可以同时生成一个动画对象来动画多个属性?
如果有人能让我开始的时候,动画的复杂性与所需代码的数量成正比,我将非常感激:)预先感谢。
发布于 2010-09-14 21:39:46
你想得太多了。
虽然苹果确实不鼓励iOS 4中的入门动画:上下文:方法,但它们提供了一种比以前更容易实现的新方法。它仍然是UIView类的一部分,它只使用了update提供的一个很好的新特性:块。
事实上,苹果甚至鼓励使用基于块的动画。摘自UIView类引用:
“在iOS 4.0及更高版本中,不鼓励使用此方法。您应该使用基于块的动画方法。”
基于块的动画非常容易使用。它们的形式如下:
[UIView animateWithDuration:5
animations:^{
self.yourView.frame = CGRectMake(100, 100, 100, 200);
self.yourView.alpha = 0.3;
}
completion:^(BOOL finished){
self.yourView.alpha = 1.0;
[self.yourProperty doSomethingReallyCool];
}
];看起来很眼熟?它非常类似于最初的动画:上下文:方法。小^{}节是块。块保持状态,因此它们在这类事情上工作得很好。有关块的更多信息,请查看
Introduction.html。
确保查看位于UIView的这里类引用。有许多新的基于块的动画方法。
此外,值得注意的是,块仅为iOS 4。因此,提供了SDK 3或更低版本设备的备份代码.或者,继续使用初学者动画:上下文:就目前而言,请注意,它的日子已经屈指可数了。
发布于 2010-09-14 11:46:56
可以设置应该在[UIView beginAnimations:nil context:nil];方法中动画化的属性,如下所示:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
view.alpha = 0.0f;
view.center = CGPointMake(34.0f,23.0f);
...
[UIView commitAnimations];https://stackoverflow.com/questions/3690654
复制相似问题