3 votes

SDWebImage avec une image de cellule UITableView personnalisée

J'essaie d'utiliser SDWebImage à l'aide d'une bibliothèque UITableViewCell . Voici la méthode qui permet de télécharger les images à partir du service web :

- (void) downloadThumbnails:(NSURL *)finalUrl
{
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadWithURL:finalUrl
                     options:0
                    progress:nil
                   completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
     {
         if (image)
         {
             // do something with image
             // THERE I HAVE TO ASSIGN the property "thumbnail" with the "image"
             // So it can be used by the tableview controller class
         }
     }];

}

Le code ci-dessus se trouve dans un fichier séparé appelé RSSItem . Alors que mon UITableViewController a les caractéristiques suivantes cellForRowAtIndexPath méthode :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ItemsCell";

    ItemsViewCell *cell = (ItemsViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    RSSItem *item = [[channel items] objectAtIndex:[indexPath row]];

    cell.titleLabel.text = [item title];
    cell.creatorLabel.text = [item creator];
    cell.pubTimeLabel.text = [item pubTime];
    cell.thumbContainer.image = [item thumbnail];

    return cell;
}

Quelqu'un peut-il m'indiquer comment configurer le if (image) dans la méthode downloadThumbnails ? J'ai juste besoin d'assigner "image" à la propriété "thumbnail", comment puis-je faire cela ?

4voto

KC. Points 2146

Il semble que vous ayez déjà utilisé la bonne méthode pour télécharger des images de manière asynchrone à l'aide de SDWebImage. Tout ce qu'il vous reste à faire, c'est de définir la propriété thumbnail à "image". Voici comment procéder :

- (void) downloadThumbnails:(NSURL *)finalUrl
{
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadWithURL:finalUrl
                     options:0
                    progress:nil
                   completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
     {
         if (image)
         {
             [self setThumbnail:image];
         }
     }];

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X