J'ai une tableview
, comment puis-je ajouter une image à gauche de cette cellule?
cell.imageView.image = [UIImage imageNamed:@"image.png"];
UPDATE: Comme Steven Fisher l'a dit, cela ne devrait fonctionner que pour les cellules de style UITableViewCellStyleDefault, qui est le style par défaut. Pour les autres styles, vous devez ajouter un UIImageView à contentView de la cellule.
Essayez ce code: -
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(3,2, 20, 25)];
imv.image=[UIImage imageNamed:@"arrow2.png"];
[cell addSubview:imv];
[imv release];
UITableViewCell standard contient déjà UIImageView qui apparaît à gauche de toutes vos étiquettes si son image est définie. Vous pouvez y accéder en utilisant la propriété imageView:
cell.imageView.image = someImage;
Si, pour une raison quelconque, le comportement standard ne répond pas à vos besoins (notez que vous pouvez personnaliser les propriétés de cette vue d'image standard), vous pouvez ajouter votre propre UIImageView à la cellule, comme suggéré par Aman dans sa réponse. Mais dans cette approche, vous devrez gérer vous-même la disposition des cellules (par exemple, assurez-vous que les étiquettes des cellules ne chevauchent pas les images). Et ne pas ajouter de sous-vues à la cellule directement - ajoutez-les à la fonction contentView de la cellule:
// DO NOT!
[cell addSubview:imv];
// DO:
[cell.contentView addSubview:imv];
Pour les autres utilisateurs de Swift, voici le code dont vous aurez besoin:
let imageName = "un-child-rights.jpg"
let image = UIImage(named: imageName)
cell.imageView!.image = image
Swift 4 solution:
cell.imageView?.image = UIImage(named: "yourImageName")
Toutes les bonnes réponses des autres. Voici deux façons de résoudre ce problème:
Directement à partir du code où vous devrez contrôler par programme les dimensions de la vue image
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
...
cell.imageView!.image = UIImage(named: "xyz") // if retrieving the image from the assets folder
return cell
}
À partir du story-board, vous pouvez utiliser l'inspecteur d'attributs et l'inspecteur de taille du volet Utilitaires pour ajuster le positionnement, ajouter des contraintes et spécifier des dimensions.
Dans le storyboard, ajoutez un objet imageView dans la vue de contenu de la cellule avec les dimensions souhaitées, puis ajoutez une balise à la vue (imageView) dans l'inspecteur d'attributs. Puis procédez comme suit dans votre viewController
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
...
let pictureView = cell.viewWithTag(119) as! UIImageView //let's assume the tag is set to 119
pictureView.image = UIImage(named: "xyz") // if retrieving the image from the assets folder
return cell
}