Как переместить загрузку изображений в фоновый поток в Smooth UI? - PullRequest
2 голосов
/ 13 сентября 2011

У меня есть этот метод, и мне посоветовали сделать загрузку изображений в фоновом потоке.Кто-нибудь может мне помочь с этим?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSURL *myURL=[NSURL URLWithString:[self.picturesArray objectAtIndex:indexPath.row]]; 
    NSData *myData1 = [[NSData alloc] initWithContentsOfURL:myURL];
    UIImage *myImage = [[UIImage alloc] initWithData:myData1]; 

    cell.imageView.image = myImage;

    return cell;
}

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

Вы можете использовать UIImageView, который загружается асинхронно.Проверьте это: http://iphone -dev-tips.alterplay.com / 2009/10 / asynchronous-uiimage.html

Вы должны создать подкласс UITableViewCell и добавить к нему AsynchronousImageView.а затем выполните [cell.asyncImageView loadImageFromURLString: [self.picturesArray objectAtIndex: indexPath.row]].

0 голосов
/ 13 сентября 2011

Если оставить в стороне тот факт, что показанный код не может работать сам по себе ... то, что вы хотите сделать, довольно легко.Ваша ячейка может быть пользовательским UITableCell, в котором вы определяете метод, который выполняет загрузку в фоновом режиме.В cellForRowAtIndexPath: вы вызываете этот метод, например, [cell loadImageInBackground:myURL].Умная часть заключается в том, что ячейка, конечно, знает, что в ней находится, то есть UIImageView, который вы хотите настроить.Таким образом, фоновая загрузка, когда она завершится, может просто установить изображение, и ваша таблица останется отзывчивой.

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