0

そこで、UIImageView を使用して一連の画像をアニメーション化しています。それは機能しますが、物事のサイズが奇妙に変更されています。拡張された UIImageView クラス内のすべてを次のように初期化します。

tImage = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png",tName]];
self = [self initWithImage: tImage];

NSMutableArray *frameArray = [[NSMutableArray alloc] initWithCapacity:0];
UIImage *tFrame;

    for(int i = 1; i < prp.frames + 1; i++) {
        tFrame = [UIImage imageNamed:[NSString stringWithFormat:@"%@%d.png", tName, i]];
        [frameArray addObject:tFrame];
    }

CGRect cropRect = CGRectMake(0.0, 0.0, tFrame.size.width, tFrame.size.height);
self.bounds = cropRect;
[self setContentMode:UIViewContentModeScaleAspectFit];
self.clipsToBounds = YES;

[self setAnimationImages:frameArray];
[self setAnimationDuration:prp.frameDur];
[self startAnimating];

prp.framesとは、カスタムprp.frameDurプロパティの構造体から渡す値です。

私が抱えている問題は、各段階で画像のサイズが異なることです。ソース画像はすべて 59x47 です。tImage (UIImage) は 46x26 に設定されています (size.width および size.height プロパティを確認)。tFrame (UIImage) は 53x35 に設定されています (同じプロパティを確認)。なぜこれが起こるのか、誰にも手がかりがありますか?元の画像サイズ (59x47) として初期化されないのはなぜですか? また、それらに基づく 2 つの UIImage オブジェクトが互いに異なるのはなぜですか??

4

1 に答える 1

0

私は自分でそれを理解しました。tImage で使用するソース イメージを 46x26 サイズから 59x47 サイズに変更して、置き換えました (両方で同じイメージ名)。キャッシュか何かで、まだ46x26の画像を使用していました。プロジェクトをクリーニングして再構築することで修正しました。すべては順調です。したがって、これは閉じても何でもかまいません。

于 2012-11-15T00:21:59.953 に答える