Iphone iPad自制移动动画

Iphone iPad自制移动动画,iphone,cocoa-touch,ipad,uikit,core-animation,Iphone,Cocoa Touch,Ipad,Uikit,Core Animation,我在iPad上的性能有问题。我需要用动画拖动UIView。它类似于自制的UIScrollView,但具有更大的反弹效果 我将自制的动画循环与NSTimer一起使用(ScheduleTimerWithInterval 0.3秒)。在每次迭代中,我一步一步地移动视图 但问题是,这是一次又一次的冻结。没有太多。。。但足够让人感觉。。有人知道用正确的方法做下面的事情的方法吗,所以它会很有魅力吗 提前谢谢 您应该使用[UIView beginAnimations]而不是定时计时器。例如,要在2秒内移动某个

我在iPad上的性能有问题。我需要用动画拖动UIView。它类似于自制的UIScrollView,但具有更大的反弹效果

我将自制的动画循环与NSTimer一起使用(ScheduleTimerWithInterval 0.3秒)。在每次迭代中,我一步一步地移动视图

但问题是,这是一次又一次的冻结。没有太多。。。但足够让人感觉。。有人知道用正确的方法做下面的事情的方法吗,所以它会很有魅力吗


提前谢谢

您应该使用[UIView beginAnimations]而不是定时计时器。例如,要在2秒内移动某个对象,可以执行以下操作:

YourView.center = CGPointMake(0,0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
YourView.center = CGPointMake(30, 30);
[UIView commitAnimations];
这将在2秒内将视图从0,0移动到30,30(这就是设置AnimationDuration的目的)。所以,如果你想做一个反弹效果,你会有一系列的这些。当动画完成时,也可以使用

[UIView setAnimationDidStopSelector:@selector(somefunction)]


此时,您可以在函数“somefunction”中启动另一个动画。

可能是计时器导致了您的问题。动画的间隔应该是这样的:1.0/60.0f

这种方法的问题是我应该制作大量的动画块。因为我有非常具体的轨迹…德米特里,你解决过这个问题吗?自从我上次回答后,我发现了UIBezierPath动画,看看这是否对你有帮助。检查一下:我确信这不是因为每次迭代的计算算法。因为如果我将主视图移动到屏幕大小的一半(因此只有滑动视图的一半是可见的)的底部,它就会工作得很顺利。有人知道标准核心动画是如何工作的吗?它里面有类似的东西吗(NSTimer)?我发现一件事-如果你截获事件TouchsMoved并移动一些视图,你会发现它的性能很差(视图在移动时会抽搐)。但是,当您在UIScrollView中执行相同的操作时,视图会平滑移动。那么,UIScrollView内部是如何工作的呢??