0

iOS デバイスでアプリを作成していますが、背景にアニメーションが表示されますが、基本的には、1 つのアニメーションにアップロードできる画像の数を設定したコードではありません。

.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    IBOutlet UIImageView *animation;
}

@end

.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(void)viewDidLoad {



    animation.animationImages = [NSArray arrayWithObjects:

                                 [UIImage imageNamed:@"animatedbg1.gif"],

                                 [UIImage imageNamed:@"animatedbg2.gif"],

                                 [UIImage imageNamed:@"animatedbg3.gif"],

                                 [UIImage imageNamed:@"animatedbg4.gif"],

                                 [UIImage imageNamed:@"animatedbg5.gif"],

                                 [UIImage imageNamed:@"animatedbg6.gif"],

                                 [UIImage imageNamed:@"animatedbg7.gif"],

                                 [UIImage imageNamed:@"animatedbg8.gif"],

                                 [UIImage imageNamed:@"animatedbg9.gif"],nil],





    [animation setAnimationRepeatCount:0];

    animation.animationDuration = 2;

    [animation startAnimating];



} 

現時点では 9 枚の画像がありますが、私のアニメーションには 155 枚の画像があるので、それでも機能します :) そうでない場合は、私が取ることができるより良いルートを知っていますか?

4

1 に答える 1

0

あなたが遭遇する確固たる限界はないと思います。ただし、使用する画像が多すぎると、メモリの制限に達する可能性があります。圧縮されていない各画像のサイズはどれくらいですか? これが大きく影響します。

もちろん、サードパーティの iOS アプリで使用できるメモリ量が保証されていないことはおそらくご存知でしょう。システムで他に何が実行されているか、ユーザーが Mobile Safari で開いている Web ページの数などに応じて、使用可能な空きメモリの量が異なります。

ビルドして実験する必要があるかもしれません。

あくまでも参考程度に。を使用しているアプリがanimationImagesあり、画像がフルスクリーン (480 x 270 ピクセル) ではありませんでした。画像は、それぞれ約 70 KB の 24 ビット PNG で、圧縮されています。

安全に使用できるのは約 10 個だけであり、メモリ不足の状態を処理するためにシャットダウンすることについてあまり心配する必要がないことがわかりました。さて、当時はかなり古くなりつつあるiPhone 3Gをターゲットにしていました。それでも、iPhone 3G モデルをサポートしたい場合があります。

コード内でデバイス モデルをクエリし、アプリが読み込もうとする画像の数に異なるデフォルトを設定することは確かに可能です。新しい iOS デバイスがリリースされても壊れない、より一般的なものが必要な場合は、デバイスにメモリの量を問い合わせることができます。次に、メモリの少ないデバイスで実行していることを検出した場合に、偶数番号の画像のみを読み込むようにアプリをコーディングできます。

didReceiveMemoryWarningUIViewControllers に実装して、メモリの警告が表示されたときに一部の画像をアンロードすることもできます。これはすべて、画像を削除するとアニメーションが滑らかに見えなくなり、完全に機能しなくなるわけではないというアニメーションの前提です。

iOS メモリ警告の解釈に関する情報を次に示します。

于 2012-07-10T09:39:14.687 に答える