-2

方法 setAnimationDuration 对我的代码没有影响,我的 Animation 太快了。这是代码

[UIView beginAnimations:nil context:nil];      
image1.frame=CGRectMake(0, 0, 0,image1.frame.size.height);
image2.frame=CGRectMake(image2.frame.size.width, 0, 0,image2.frame.size.height);
[UIView setAnimationDuration:10];
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
4

2 回答 2

6

您需要在更改动画属性之前设置持续时间值。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10];
image1.frame=CGRectMake(0, 0, 0,image1.frame.size.height);
image2.frame=CGRectMake(image2.frame.size.width, 0, 0,image2.frame.size.height);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];

Apples 类参考中关于 setAnimationDuration 方法的 UIView 状态的讨论:

您必须在更改视图的动画属性之前调用此方法。默认值为 0.2 秒。

这就是为什么你会得到非常快的动画。

ios4 不鼓励这种风格的动画,所以如果上述方法不起作用,请尝试使用新的动画块风格。

于 2013-02-27T09:37:15.427 回答
0

使用以下方法将动画添加到您的视图:

[UIView animateWithDuration:2.0 animations:^()
 {
     //Your code here
 }];

或者使用这种方法:

[UIView transitionWithView:super.view duration:1.0 options:UIViewAnimationOptionTransitionCurlUp animations:^
     {
         //your code here
     }completion:NULL
    ];
于 2013-02-27T09:35:27.637 回答