0

AsyncImageView クラスを使用して、UITableView に遅延読み込みを適用しています。画像がセルに読み込まれるまで、画像ビューにアクティビティインジケーターを適用したい。以下は私が試している私のコードです。

//  AsyncIamgeView.m

 - (void)connectionDidFinishLoading:(NSURLConnection*)theConnection {

//[connection release];
UIActivityIndicatorView     *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
indicator.center = CGPointMake(15, 15);

connection=nil;

if ([[self subviews] count]>0) {
    [[[self subviews] objectAtIndex:0] removeFromSuperview];
}

UIImage *imgData = [UIImage imageWithData:data];
UIImageView* imageView = [[UIImageView alloc]init];
 [imageView addSubview:indicator];
[indicator startAnimating];

    if(imgData == nil)
{
    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NoImagenew.png"]];
    //[indicator stopAnimating];
}
else{
    imageView = [[UIImageView alloc] initWithImage:imgData];
   // [indicator stopAnimating];
}
//imageView.contentMode = UIViewContentModeScaleAspectFit;
//imageView.autoresizingMask = ( UIViewAutoresizingFlexibleWidth || UIViewAutoresizingFlexibleHeight );
//[imageView sizeToFit];
[self addSubview:imageView];

imageView.frame = self.bounds;
//imageView.frame = CGRectMake(0, 0, 85, 94);
[imageView setNeedsLayout];
[self setNeedsLayout];
//[data release];
data=nil;
}

 //   cellForRowAtIndexPath method.

 asyncImageView = [[AsyncImageView alloc]initWithFrame:CGRectMake(1, 3, 85, 54)];
[asyncImageView loadImageFromURL:[NSURL URLWithString:imageUrlString]];
[cell.contentView addSubview:asyncImageView];

このコードはアクティビティインジケーターを表示しますが、画像をロードする前ではなく、その後に画像がロードされると表示されます。以上をご案内します。

4

5 に答える 5

0

あなたはasynimageviewクラスを使用していると思います.デフォルトでは、セル自体にローダーを取得します.

于 2013-07-22T07:11:50.103 に答える