Iphone iOS UIView块动画停止实际设置动画

Iphone iOS UIView块动画停止实际设置动画,iphone,uiviewanimation,Iphone,Uiviewanimation,我在使用基于UIView块的动画时遇到了一个奇怪的问题。我的应用程序包含滚动视图中的各种图像,在设备上使用应用程序一段时间后,UIView动画块中的所有动画(如下面的动画块)停止动画制作。动画已被处理(在下面的示例代码中,页面视图确实会移动),但此更改不会设置动画,而是立即发生 [UIView animateWithDuration:0.5 animations:^ { self.pageView.center = CGPointMake(self.view.frame.size.w

我在使用基于UIView块的动画时遇到了一个奇怪的问题。我的应用程序包含滚动视图中的各种图像,在设备上使用应用程序一段时间后,UIView动画块中的所有动画(如下面的动画块)停止动画制作。动画已被处理(在下面的示例代码中,页面视图确实会移动),但此更改不会设置动画,而是立即发生

[UIView animateWithDuration:0.5 animations:^
{ 
     self.pageView.center = CGPointMake(self.view.frame.size.width/2, 704.0/2);
     self.pageView.transform = CGAffineTransformIdentity;
} 
completion:^(BOOL finished)
{
     NSLog(@"complete");
}];
还有其他人经历过类似的行为吗?我用的是5.1版的iPad,我想知道它是否可以降到iOS版本

谢谢


Michael

当您使用变换时,如果单独使用动画,动画可能会有不可预测的行为。为了避免这种情况,您应该通过CGAffineTransformConcat将所有变换连接成一个变换,并为该变换设置动画。

尝试使用一些动画选项,看看是否有帮助

例如,在这里,我让用户进行交互,并让视图在动画期间重新绘制自己:

[UIView animateWithDuration:0.5
                      delay:0
                    options: UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAllowAnimatedContent   
                 animations:^ {
                    self.pageView.center = CGPointMake(self.view.frame.size.width/2, 704.0/2);
                    self.pageView.transform = CGAffineTransformIdentity;
               } completion:^ (BOOL finished) { 
               } ];

检查内存使用情况。我看到的和你一样——最终所有的动画都停止工作了。动画甚至没有为我运行,完成块也没有启动


我发现我保留了一些不再可见的UIImageView,因为我想稍后重新显示它们。删除它们并释放UIImage使问题得以解决。我现在需要弄清楚如何取回图像,但至少动画效果与预期一致。

我不知道你的应用程序中是否有大量动画同时运行(可能是什么原因),如果是这样,如果有多个动画块正在操作同一对象。这可能是由于可能同时运行多个动画块所致。我会试试看情况是否如此。谢谢谢谢,迪恩。我试试看。