0

私は、アニメーション用の画像myimageviewの NSArray( ) をロードしたシンプルな UIImageView( ) を持っています (私の:animationArrayViewController.m)

[self.myimageview setAnimationImages:self.animationArray];
[self.myimageview setAnimationDuration:[self durationTime]];
[self.myimageview setAnimationRepeatCount: 1];
[self.myimageview startAnimating];

stopAnimating などを使用する場所を知っています。ただし、奇妙な問題があります。画面がロックされると、アニメーションに何も起こりません。何でも魅力のように機能します。画面のロックを解除した後も続きます。

ただし、アプリがバックグラウンド モードになると、アニメーション全体が停止します (アニメーションの長さは 2 ~ 3 分なので、受け入れられません)。少し検索したところ、次のトピックが見つかりました。

UIImageView アニメーションを一時停止する方法

このコードを使用する場所:

UIView *viewBeingAnimated = //your view that is being animated
viewBeingAnimated.frame = [[viewBeingAnimated.layer presentationLayer] frame];
[viewBeingAnimated.layer removeAllAnimations];
//when user unpauses, create new animation from current position.

今、これを AppDelegate.m のコードに実装しようとしています

// in -(void)applicationDidEnterBackground:
self.viewController.myimageview.frame = [[self.myimageview.frenchPress.layer presentationLayer] frame];

ただし、 XCode内で(上記の行で)この問題が発生し、それ以上続行できません:

AppDelegate.m:40:47: Receiver type 'CALayer' for instance message is a forward declaration

バックグラウンドで値を終了すると、時間を節約できます: self.currentDate(必要な場合に備えて、補足として)。

中断せずにアニメーションを一時停止して再生するにはどうすればよいですか?

4

1 に答える 1

3

のすべてのメッセージとプロパティにアクセスするCALayerには、対応するフレームワーク ヘッダーを含める必要があります。

#import <QuartzCore/QuartzCore.h>

これにより、警告が解消されることが期待されます。

于 2012-09-05T19:14:35.420 に答える