2012-08-27 61 views
0

我有一个简单的动画,将视图从一个位置移动到另一个位置。动画功能,除了正常的事实,是不遵循持续时间在方法声明中设置...UIView animateWithDuration不遵守持续时间

[UIView beginAnimations:@"listAnimationIn" context:nil]; 
[UIView animateWithDuration:1.0 
         delay:1.0 
        options:UIViewAnimationCurveLinear 
       animations:^{ 
        lvc.view.frame = CGRectMake(0, 0, 320, 480); 
       } 
       completion:nil]; 
[UIView commitAnimations]; 

延迟工作,但动画运行FAST无论我把什么价值为持续时间(我试过从0.5到2000的值)。我也尝试了几个UIViewAnimationCurve选项,似乎没有任何工作。

我错过了什么吗?

回答

3

您不需要-beginAnimations:context:-commitAnimations消息。这是做这件事的老方法,你不应该混淆。只需拨打-animateWithDuration:delay:options:animations:completion:方法即可。此外,如果您添加完成块,则会传递一个布尔变量来告诉您动画是否提前终止或运行完成。如果动画速度太慢,或者您有相同的视图层次结构(您确实有旧的样式开始/提交调用)开始竞争动画,则会发生这种情况。

+0

贾森,我的男人!搞定了。谢谢一堆! – CoderMarkus