0

私のViewControllerは60個の小さなUIViewを作成します。それぞれに同じ jpg の UIImage が必要です (UIImageView で使用するため)。

私の理論では、各 UIView が独自の UIImage を作成する代わりに、ViewController で定義された 1 つの UIImage を再利用する方がよいでしょう。

ViewController コード:

UIImage *reuseableUIImage = [UIImage imageNamed:@"LittlePicture.jpg"];

for (i=0; i<60; i++){
    [arrayOfUIViews addObject:[[myUIViewMaker alloc] init...]];
}

私の理論は間違っていますか?各 UIView で UIImage を作成するだけでよいのでしょうか。

私の理論が正しければ、私の UIView は親 ViewController の UIImage をどのようにターゲットにできますか? 構文がわかりません。(悪いことに) 説明すると、UIView 内のコードは次のようになります。

finalUIImageView = [[UIImageView alloc] initWithImage:self.parentViewController.reuseableUIImage];
4

1 に答える 1

2

あなたのコードは問題ないように見え、正しく動作するはずです。UIImage を保持するには、viewController でプロパティを定義する必要があります。

これにより得られる主な利点は、イメージをロードする時間が 1 回だけになることです。ビューごとにイメージを割り当てて初期化すると、毎回イメージをロードする必要があります。

編集:

もう一度考えてみると、初期化時に画像を子ビューに渡すのが最善の方法です。

UIImage *reuseableUIImage = [UIImage imageNamed:@"LittlePicture.jpg"];

for (i=0; i<60; i++){
    [arrayOfUIViews addObject:[[myUIViewMaker alloc] initWithImage:reusableUIImage]];
}

myUIViewMaker クラスの init メソッドは次のように実装されます。

-(id)initWithImage:(UIImage *)image
{
    self = [super init];
    if (self) {
        finalUIImageView = [[UIImageView alloc] initWithImage:image];  
    }
    return self;
}
于 2012-07-19T10:24:58.367 に答える