0

取り引きは次のとおりです。ストーリーボードには25個のビューコントローラーがあり、それぞれに大きなファイルサイズのPNGを表示するUIImageViewがあります。

nib 内の UIImageView は、[UIImageView initWithImage:[UIImage imageNamed:]]メソッドを使用してイメージをロードすることがわかりました (ドキュメントを参照)。使用に関する問題imageNamed:は、各ビュー コントローラーが読み込まれると、その UIImageView 内の画像がキャッシュに配置され、アプリがすぐにメモリの警告を受けてクラッシュすることです。

[UIImageView initWithImage:[UIImage imageWithContentsOfFile:]]解決策は、イメージをロードしますが、キャッシュしない を使用することです。だから私がやろうとしているのは、NIBファイルで、を呼び出すUIImageViewのサブクラスを使用することimageWithContentsOfFileです。しかし、Interface Builder の属性インスペクターで設定されている画像ファイルの名前を取得する方法がわかりません。

UIImageViewNoCache.h

#import <UIKit/UIKit.h>

@interface UIImageViewNoCache : UIImageView
@end

UIImageViewNoCache.h

#import "UIImageViewNoCache.h"

@implementation UIImageViewNoCache

-(id)initWithImage:(UIImage *)image{
   self = [super init];
    if(self){
        self.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], theNameOfTheImageInTheNib];]
    }
}
@end

では、どうすれば入手できtheNameOfTheImageInTheNibますか?

4

1 に答える 1

1

私が書いたこのカテゴリを見てください: UIImage+SDSCache

キャッシュを使わないようにスウィズルimageNamedします。そのまま、または特定の問題を解決する方法のサンプルとして役立つ可能性があります。

于 2012-06-27T18:29:41.920 に答える