Tho*_*oos 4 iphone uiviewanimation
我有一个带有几个UILabel的UIView,它从上到下动画,反之亦然.一种Autoque让我们说:)我使用2个函数:
-(void)goUp
-(void)goDown
Run Code Online (Sandbox Code Playgroud)
这些函数将UIView动画启动到所需位置.它们都定义了一个AnimationDidStopSelector,最后调用另一个函数.一切顺利.
当使用touchesBegan触摸屏幕时,我想暂停当前动画并使用touchesMoved事件更改UIView的垂直位置.在touchesEnded中,我希望将动画恢复到所需的最终位置.
这样做的正确方法是什么?
托马斯
我在UIView上创建了一个类别来暂停和停止动画:
@interface UIView (AnimationsHandler)
- (void)pauseAnimations;
- (void)resumeAnimations;
@end
@implementation UIView (AnimationsHandler)
- (void)pauseAnimations
{
CFTimeInterval paused_time = [self.layer convertTime:CACurrentMediaTime() fromLayer:nil];
self.layer.speed = 0.0;
self.layer.timeOffset = paused_time;
}
- (void)resumeAnimations
{
CFTimeInterval paused_time = [self.layer timeOffset];
self.layer.speed = 1.0f;
self.layer.timeOffset = 0.0f;
self.layer.beginTime = 0.0f;
CFTimeInterval time_since_pause = [self.layer convertTime:CACurrentMediaTime() fromLayer:nil] - paused_time;
self.layer.beginTime = time_since_pause;
}
Run Code Online (Sandbox Code Playgroud)