web-dev-qa-db-fra.com

Ajout d'une image dans une cellule

J'ai lu des tas de questions mais n'arrive pas à trouver la réponse

J'ai une TableView mais je ne peux pas ajouter d'image à ma cellule

cell.imageView.image = UIImage(named: "osx_design_view_messages")

Ce code devrait fonctionner parce que je l'ai essentiellement copié d'une réponse à une question, mais pour une raison quelconque, il ne fonctionne pas. Aucune suggestion?

J'utilise Swift soit dit en passant)

 override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
{
    let cellIdentifier = "cell"

    var cell : UITableViewCell

    cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell
    cell.textLabel.text = self.recipies[indexPath.row]
    var image : UIImage = UIImage(named: "osx_design_view_messages")
    return cell
}
22
Johno2110

Voici quelques causes possibles de votre problème:

  1. Le prototype de cellule doit inclure un UIImageView. Si vous utilisez un storyboard, sélectionnez le prototype de cellule et assurez-vous que son style est défini sur "De base" dans l'inspecteur d'attributs (panneau de droite).

  2. L'identifiant de cellule ne correspond pas à l'identifiant tapé pour votre cellule prototype dans votre storyboard. Assurez-vous que "cellule" est entré pour "Identifiant" également dans l'inspecteur d'attributs.

  3. L'image ne se charge pas correctement à partir du fichier. Pour tester cela, ajoutez la ligne suivante après avoir initialisé votre image:

    println("The loaded image: \(image)")

Après avoir vérifié que tout est défini dans votre storyboard, essayez de l'exécuter en utilisant ce code:

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
    {
        let cellIdentifier = "cell"

        var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell

        cell.textLabel.text = self.recipes[indexPath.row]

        var image : UIImage = UIImage(named: "osx_design_view_messages")
        println("The loaded image: \(image)")
        cell.imageView.image = image

        return cell
    }
36
Dash

Swift

// nous l'utilisons si vos images sont sur le serveur.

// nous obtenons des images d'une URL.

// vous pouvez définir l'image à partir de votre Xcode.

// c'est en utilisant assigner une balise à imageView

  1. L'URL des images est dans un nom de tableau = miniature, c'est-à-dire self.thumbnail [indexPath.row]
  2. sur UITableviewCell mettre une imageView sur la cellule
  3. sélectionnez UIimageView lui attribuer une balise de storyboard.

    let pictureURL = URL(string: self.thumbnail[indexPath.row])!
    let pictureData = NSData(contentsOf: pictureURL as URL)
    let catPicture = UIImage(data: pictureData as! Data)
    var imageV = UIImageView()
    imageV = cell?.viewWithTag(1) as! UIImageView
    imageV.image = catPicture
    
2
Ameer Chand