Я следил за кодами здесь https://stackoverflow.com/a/7212943/711837, чтобы я начал показывать индикатор моего приложения, пытающегося загрузить изображения с определенного веб-сайта. Сценарий:, показывающий прогресс на изображении на customcell на uitableview
У меня есть табличное представление со многими пользовательскими ячейками, пользовательские ячейки имеют 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];
}
}
показать свой метод downloadImageFromInternet ... скорее всего, вы вызываете его на главном thread..which блокирует ваш пользовательский интерфейс для обновления – Shubhank
'- (Недействительными) downloadImageFromInternet: (NSString *) urlToImage { \t // Создание экземпляра of InternetImage \t asynchImage = [[DownloadThumb alloc] initWithUrl: urlToImage]; \t \t // Начинаем загрузку изображения с себя как получателя делегата \t [asynchImage downloadImage: self]; } - (Недействительными) internetImageReady: (DownloadThumb *) downloadedImage {\t \t // Изображение было загружено. Поместите изображение в UIImageView \t [arrayImg addObject: скачаноImage.Image]; \t [поворотный выключательАнимация]; \t [self.thetableView reloadData]; } ' Последнее для того, когда данные загружаются – eddy
как мне форматировать строки! : S – eddy