2013-06-29 3 views
0

Привет, я новичок в приложении iPhone. В моем приложении я использовал tableview.Загрузка асинхронного изображения в iPhone?

, когда я нажимаю на ячейку таблицы, он делает для подробного просмотра, который имеет UIScrollview. где я загружаю

изображения из NSMutableArray. и в этом NSMutableArray есть некоторые изображения URL.

, когда я нажимаю на ячейку таблицы, требуется больше времени для загрузки всех изображений.

пожалуйста, мне нужна помощь, чтобы закончить свои application.Many люди сказали делать асинхронно

, но я не знаю, как это сделать.

благодарит заранее. ожидая решения.

+0

http://blog.grio.com/2013/04/loading-an-image-asynchronously-in-ios.html – John

ответ

2

Чтобы загрузить изображения, вероятно, необходимо использовать такую ​​библиотеку, как AFNetworking, и она обрабатывает загрузку и замену на изображение в формате tableView.

1

Во-первых, я бы рекомендовал вам Paul Hegarty tutorials (в лекциях 9, 10 и в основном 11 (многопоточность)) вы можете многому научиться.

Вот некоторые примеры кода может помочь вам быстро, но избыточно:

dispatch_queue_t imageFetchQ = dispatch_queue_create("image fetcher", NULL); 
    dispatch_async(imageFetchQ, ^{ 
     NSData *imageData = [[NSData alloc] initWithContentsOfURL:self.imageURL]; // could take a while 
     // UIImage is one of the few UIKit objects which is thread-safe, so we can do this here 
     UIImage *image = [[UIImage alloc] initWithData:imageData]; 
     // check to make sure we are even still interested in this image (might have touched away) 
     if (self.imageURL == imageURL) { 
      // dispatch back to main queue to do UIKit work 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       if (image) { 
        self.scrollView.zoomScale = 1.0; 
        self.scrollView.contentSize = image.size; 
        self.imageView.image = image; 
        self.imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height); 
       } 
      }); 
     } 
    });