2个动画之间的滞后
Posted
技术标签:
【中文标题】2个动画之间的滞后【英文标题】:Lag between 2 animations 【发布时间】:2014-02-26 11:03:16 【问题描述】:我正在尝试将我的一个图像表单从底部动画到屏幕顶部,因为我正在实现一个动画,图像的当前宽度和高度将在过渡阶段变为一半,并且在动画后将采用其原始大小完成。
问题是一旦第一个动画完成它会保持一段时间然后开始另一个动画,我想要一个流畅的动画。
代码如下:
[UIView animateWithDuration:1.0
delay:0.5
options:UIViewAnimationOptionTransitionCurlUp
animations:^
[_myImageView setFrame:CGRectMake(20.0, 220.0, currentframe.size.width/2, currentframe.size.height/2)];
completion:^(BOOL finished)
if (finished)
[UIView animateWithDuration:1.0
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^
[_myImageView setFrame:CGRectMake(20.0, 20.0, currentframe.size.width, currentframe.size.height)];
completion:^(BOOL finished)
if (finished)
NSLog(@"2 nd log ");
];
NSLog(@"animation fisnished !!");
];
应该怎么做?
【问题讨论】:
我在您的代码中看不到任何滞后。它滞后在哪里?达到 y=220 后? 您在哪个硬件上测试?你在动画期间做一些并行的工作吗?你在用主线程吗? yup @GenieWanted 当我达到 y = 220 时它会滞后一段时间,并且当我按下按钮时会发生此动画。 【参考方案1】:试试这个:
[UIView animateWithDuration:1.0
delay:0
options:UIViewAnimationOptionCurveLinear// use CurveLinear option
animations:^
completion:^(BOOL finished)
];
【讨论】:
谢谢你的建议,我也试过了,是的,当我使用curveLiner选项时会有不同,但仍然有一点滞后:(以上是关于2个动画之间的滞后的主要内容,如果未能解决你的问题,请参考以下文章