отображение прогресса на изображении на пользовательской ячейке на uitableview - PullRequest
0 голосов
/ 06 марта 2012

Я следовал приведенным здесь кодам https://stackoverflow.com/a/7212943/711837, чтобы я начал показывать индикатор того, что мое приложение пытается загрузить изображения с определенного веб-сайта. Сценарий:

У меня есть таблица с множеством пользовательских ячеек, у пользовательских ячеек есть 2 метки и изображение. У меня есть NSURL для загрузки содержимого, которое будет заполнять ярлыки, а затем отдельный класс, который будет загружать изображения для заполнения в UIImageView. Код для прядильщика и загрузки изображений:

resultArray = [[NSArray alloc] initWithArray:response];
[self downloadImageFromInternet:@"http://static.colourlovers.com/images/shapes/0/7/7090/50x50.png"];
//spinner for the download
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(0, 0, 24, 24);
custcell.accessoryView = spinner;
[spinner startAnimating];
///[spinner release];

[self.thetableView reloadData];

и затем я вызываю [spinner stopAnimating] в конце загрузки метода класса, но каким-то образом, счетчики просто не анимируются, или появляются в этом деле! я что-то пропустил? или есть где-то, на что я могу сослаться? моя цель состоит в том, чтобы показать UIIndicatorView в месте UIImageView, а затем после загрузки просмотр изображения занимает одну и ту же позицию, и это находится в каждой ячейке.

ОБНОВЛЕНО добавлены методы

-(void) downloadImageFromInternet:(NSString*)urlToImage{
    // Create a instance of InternetImage
    asynchImage = [[DownloadThumb alloc] initWithUrl:urlToImage];

    // Start downloading the image with self as delegate receiver
    [asynchImage downloadImage:self];
}

-(void) internetImageReady:(DownloadThumb*)downloadedImage{ 
    // The image has been downloaded. Put the image into the UIImageView
    [arrayImg addObject:downloadedImage.Image];
    [spinner stopAnimating];
    [self.thetableView reloadData];
}

-(void)downloadImage:(id)delegate{
m_Delegate = delegate;

NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:ImageUrl] 
                                              cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
imageConnection = [[NSURLConnection alloc] initWithRequest:imageRequest delegate:self];

if(imageConnection)
{
    workInProgress = YES;
    m_ImageRequestData = [[NSMutableData data] retain];
}

}

1 Ответ

0 голосов
/ 06 марта 2012

Вы должны действительно запустить спиннер при создании ячейки.
Затем вы должны проверить cellForRowAtIndexPath, должен ли он быть видимым или нет.
Наконец, когда вам нужно отобразить его, вы можете использовать [tableView reloadData], чтобы отобразить или удалить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...