Ensemble UIImageView Taille de UITableViewCell quand UIImage chargé à partir de l'URL?
De charger des images à partir de l'URL dans une uiimage et puis l'ajout de ces images à un uitableviewcell uiimageview, comme le code ci-dessous. Je ne connais pas les tailles d'image, mais besoin de les forcer à être 40x40 dans le tableviewcell image. Les images de garder le chargement de différentes largeurs dans la uitableview.
Lu par d'autres postes liés à uiimage de dimensionnement/de mise à l'échelle, mais ces solutions ne fonctionnent pas pour moi. Je pense que c'est parce que je suis en utilisant le uiimageview inclus dans uitableviewcell vs la création de mon propre uiimageview.
Voici le code>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [[UITableViewCell alloc] init];
ItemForSale *item = [listOfItems objectAtIndex:indexPath.row];
cell.textLabel.text = item.name;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.font = [UIFont systemFontOfSize:14];
NSURL *url = [NSURL URLWithString: item.imgPath];
UIImage *thumbnail = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
if (thumbnail == nil) {
thumbnail = [UIImage imageNamed:@"noimage.png"] ;
}
cell.imageView.image = thumbnail;
cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
cell.imageView.frame = CGRectMake(0, 0, 40, 40);
cell.imageView.autoresizingMask = UIViewAutoresizingNone;
cell.imageView.clipsToBounds = YES;
return cell;
}
J'ai essayé le réglage de mode de contenu (essayé les deux aspectfill d'aspect et forme), essayé de réinitialiser l'image, réglage de autoresizingmask, clipTobound. rien n'a changé une chose.
OriginalL'auteur Augie | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Trouvé la réponse en regardant les Pommes exemple de projet "LazyTableImages"
Quel est le message de la classe à laquelle devez-vous mettre? Est-ce à l'intérieur de votre sous-classe de la UITableView ou UITableViewCell?
au-dessus de code était "tableView: cellForRowAtIndexPath:" dans le thread principal, mais plus tard, j'ai changé mon code pour imiter l'exemple de 'lazy tableau images sur les pommes dev du site, qui consiste à appeler un thread d'arrière-plan à partir de 'tableView: cellForRowAtIndexPath:" et puis de télécharger l'image, l'enregistrer sur une uiimage et à la fin, le retour de la uiimage pour le thread principal pour le mettre dans la cellule.imageView. Je pense que icondownloader était le nom de l'objet en cours d'exécution en arrière-plan dans l'exemple de projet.
Merci, je vais donner à ce déplacement. Le problème que je rencontre est plus précisément décrite ici: stackoverflow.com/questions/8085750/... mais malheureusement, cette question n'a pas reçu de réponses.
cette réponse est grand...
OriginalL'auteur Augie
J'ai eu le même problème et cela a fonctionné parfaitement pour moi;
sélectionnez le UIImage et aller à des attributs de l'inspecteur et cochez la case "Clip des sous-vues"
assurez-vous d'avoir des contraintes pour la taille de votre image.
OriginalL'auteur NSGodMode
J'ai eu ce problème quand j'étais à tort à l'aide de l'imageView propriété de la cellule plutôt que la propriété de la coutume UIImageView que j'ai créé dans la table de montage séquentiel. Lorsque j'ai utilisé la référence appropriée à la vue personnalisée, tout a fonctionné comme prévu. Je soupçonne certains d'entre vous ont fait similaires.
OriginalL'auteur Litehouse