iOS - UITableViewCell réglage de l'image/redimensionner
J'ai créer une vue de la table et ont rempli ses cellules avec du texte. Ce que j'essaie de faire est d'ajouter une image à la cellule, mais ce qui se passe est que l'image est corniche toute la cellule et il est mauvais...
C'est ce que je fais: cell.imageView.image = [UIImage imageNamed:@"test2.jpeg"];
Et c'est à quoi il ressemble:
Ce que j'essaie de l'obtenir à regarder comme est:
Comment puis-je redimensionner l'image de la vue de la table de la cellule pour obtenir le résultat souhaité?
Mise à jour
C'est ce que j'ai essayé suggéré dans les réponses ci-dessous:
cell.imageView.frame = CGRectMake(0.0f, 0.0f, 30.0f, 30.0f);
cell.imageView.layer.cornerRadius = 8.0;
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.imageView.layer.masksToBounds = YES;
cell.imageView.image = [UIImage imageNamed:@"test2.jpeg"];
mais encore la sortie que j'obtiens est:
Mise à jour 2.0
J'ai essayé quelques autres méthodes suggérées:
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(30, 30, 30, 30)];
imageView.backgroundColor = [UIColor clearColor];
[imageView.layer setCornerRadius:8.0f];
[imageView.layer setMasksToBounds:YES];
[imageView setImage:[UIImage imageNamed:@"test2.jpeg"]];
[cell.contentView addSubview:imageView];
mais maintenant j'ai ceci:
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord configurer la cellule de l'imageView au max taille que vous voulez. Puis vous assurer que via l'Interface Builder ou via le code que vous avez le bon mode de contenu:
Fondamentalement avec ce mode, il va essayer de s'adapter à l'espace que vous avez créé pour votre image, mais il sera de maintenir le ratio d'aspect.
Jackson posté une bonne image qui montre le contenu des modes ici:
Pour le coin, vous devrez QuartzCore et vous pouvez le faire avec ce code:
Mise à JOUR
Si votre imageView n'est pas une prise de courant, vous êtes mieux en ajoutant une imageView-vous à la cellule. Vous pouvez (et vous devez) faire que via la table de montage séquentiel/xib. Ce tutoriel peut vous aider à sur que, bien qu'il existe beaucoup d'entre eux sur internet. Cette question stackoverflow donne d'autres solutions à ce problème.
cell.imageView.frame = CGRectMake(0,0,30,30);
pour définir la taille d'image pour l'affichage de l'image ne fonctionne pas. il montre encore l'image a montré dans la questionJ'ai passé les dernières heures à trouver comment faire cela, alors je vais partager ce que j'ai trouvé. Votre code à partir de la mise à Jour 2.0 est un bon début:
Vous pouvez jouer avec les nombres de la première ligne pour obtenir l'image apparaîtra où vous en avez besoin; pour ma part, j'ai utilisé
(20, 5, 40, 40)
.Ajouter cette ligne avant
[cell.contentView addSubview:imageView]
:Nous avons besoin de ce tag pour identifier les sous-vue que nous venons d'ajouter. Si vous ne retirez pas l'image à chaque fois que vous rechargez une cellule, les images va juste commencer à s'empiler là. Pour votre cas, ce n'est pas beaucoup de différence, car il va continuer à utiliser la même image, de sorte qu'il aura la même apparence. Toutefois, si vous obtenez un utilisateur qui aime défiler vers le haut et vers le bas beaucoup de choses, vous pourriez rencontrer des problèmes avec un couple de cent ou plus de ces images chargées. Et si vos cellules différentes qui ont des images, ils vont commencer à afficher sur le dessus les uns des autres, qui ont l'air vraiment mauvais si elles sont de tailles différentes. Donc, avant d'initialiser
*imageView
, exécutez cette boucle:Avec ce code, votre image devrait ressembler comme il le fait dans la mise à Jour 2.0, mais il devrait mieux fonctionner. Pour déplacer votre texte, utilisez
cell.indentationLevel
etcell.indentationWidth
. Assurez-vous que votre style de cellule est "de base" (il ressemble à la vôtre), et quelque part avant de vous renvoyer à votre cellule, utilisezdonc ce code permet de déplacer le texte de plus de 10 points de 7 fois. Vous pouvez jouer avec jusqu'à ce que vous obtenez à regarder à droite; c'est tout ce que j'ai utilisé dans mon projet. Espérons que cette aide!
La meilleure façon de réaliser cela est d'ajouter le dessous de l'endroit où vous appelez
cell.imageView.image
Pour les coins arrondis
#import <QuartzCore/QuartzCore.h>
Pouvez-vous modifier l'image elle-même? Essayez de modifier l'image à la taille que vous souhaitez et manuellement à arrondir les coins. Appelez ensuite