0

私のアプリケーション階層をロードする前に、非同期UIImageViewをリセットすると、次のとおりです。次のように

UINavigationController 
|_____ 
     UITableViewController (display products summary with thumbnail image) 
     |_____ 
      UIViewController (display product details with image) 

そのを取得してビューをロードするにはあまりにも遅かったので、私はのUITableViewControllerとのUIViewControllerの両方で非同期に画像をロードするために以下のクラスを使用しています私はのUITableViewControllerで問題ありません

http://www.markj.net/iphone-asynchronous-table-image

インターネットからの画像が、問題はセルがクリックされたときに、私は戻って行くならば、それは、のUIViewControllerで画像をロードしていますUITableViewControllerをクリックして別のセルをクリックし、新しい画像がロードされるまでUIViewControllerを開きます。

新しい画像がロードされるまでUIViewControllerのUIImageViewをリセットするにはどうすればよいですか?

CGRect frame; 
frame.size.width=240; frame.size.height=130; 
frame.origin.x=0; frame.origin.y=0; 
AsyncImageView* asyncImage = [[[AsyncImageView alloc] initWithFrame:frame] autorelease]; 
asyncImage.tag = 999; 
NSURL *url = [NSURL URLWithString:@"http://i53.tinypic.com/5ezwc4.jpg"]; 
[asyncImage loadImageFromURL:url]; 
[detailsViewController.imgProduct addSubview:asyncImage]; 

助けてください:

これは、詳細ビューをロードするためのコードです。

+0

detailsviewcontrollerが作成されたコードを投稿してください。おそらく、asyncImageをテーブルから削除するか、tableviewがタップされたときにコントローラを新たに作成したいと思うかもしれません。 –

+0

詳細ビューコントローラがIBで作成されているため、詳細ビューのasyncImageの理由は、インターネットからの画像の読み取りとして詳細ビューを開くのが遅すぎたためです – DeZigny

答えて

1

これはウル前のデータをキャッシュしAsyncImageview方法のloadimagefromurl方法ではBZで、uがリセットキャッシュを必要とする - その

imageCache = nil; in the method 

を設定するしかし、それはasynimageviewを使用して他のviewcontrollersに影響を与えるだろう、

私はそう

より良い私はこの

ためGCDを使用することをお勧めする必要がありuはウルたDetailsViewコントローラに単一のイメージを持っていることを望みます10

});

http://blog.slaunchaman.com/2011/02/28/cocoa-touch-tutorial-using-grand-central-dispatch-for-asynchronous-table-view-cells/

これはAsyncImageViewクラスを強化することは価値があなたに同じ性能

+0

ありがとうKarthikeyan、GCDが私の問題は、新しい画像がロードされている間、その画像がリセットされない詳細ビューをロードするときだけ問題がない、テーブルビューのセルで助けてください! – DeZigny

+0

私はimageCache = nilを入れようとしましたが、それはエラーを投げます!これはloadImageFromURLです。 - (void)loadImageFromURL:(NSURL *)url {[connection release]; [データリリース]; NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; connection = [[NSURLConnection alloc] initWithRequest:デリゲート要求:self]; } – DeZigny

0

を与えるだろう。このように、独自のinitメソッドを追加します。

 
- (id)initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) { 
     self.image = [UIImage imageNamed:@"loading.png"]; 
    } 
    return self; 
} 

ファイルloading.pngは、あなたのバンドルであることと、リモート画像の読み込み中に表示、適切なものが含まれている必要があります。

+0

Slavaに感謝、私はこのメソッドをAsynchImageViewに配置しました。m:しかし、次のエラーが表示されます:セマンティック問題:プロパティの割り当て構文を使用してオブジェクトに割り当てるセッターメソッドが必要です – DeZigny

+0

[ここ]からリモートイメージを試してください(https://github.com/iutinvg/ZZLib/tree/master/ZZLib ) 'ZZImageView。*'と 'loading.png'ファイルを参照してください。インポートされたファイルを含めるのを忘れないでください(' ZZImageView.m'のヘッダを参照)。 – iutinvg