0

このような配列を使用していくつかの画像をアニメーション化しています

NSArray *weatherFrames = [NSArray array];
weatherFrames = [[NSArray alloc] initWithObjects:
             [UIImage imageWithData:Data1],
             [UIImage imageWithData:Data2],
             [UIImage imageWithData:Data3],
             [UIImage imageWithData:Data4],
             [UIImage imageWithData:Data5],                 
             nil];
weatherImage.animationImages = weatherFrames;
weatherImage.animationDuration = 10.00;
weatherImage.animationRepeatCount = 1;
[weatherImage release];  

私ができるようにしたいのは、誰かが呼び出しをトリガーしたときにアニメーションを一時停止することです (つまり、IBAction から)。これは可能ですか、それとももっと良い方法がありますか?

ありがとう

4

1 に答える 1

0

ここの回答からソリューションをコピーしました。

-(void)pauseLayer:(CALayer*)layer
{
    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
    layer.speed = 0.0;
    layer.timeOffset = pausedTime;
}

-(void)resumeLayer:(CALayer*)layer
{
    CFTimeInterval pausedTime = [layer timeOffset];
    layer.speed = 1.0;
    layer.timeOffset = 0.0;
    layer.beginTime = 0.0;
    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
    layer.beginTime = timeSincePause;
}

そして、CALayer を pauseLayer 関数に渡すには、次のコードを使用できます。

CALayer *player = ImageView.layer;
[self pauseLayer:player];
于 2013-01-19T20:09:40.183 に答える