2014-06-07 9 views
20

Znam mnóstwo pytań, ale nie może wydawać się znaleźć odpowiedźDodawanie obrazka do komórki

Mam Tableview ale nie można dodać zdjęcie do celi

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

ten Kod powinien działać, ponieważ zasadniczo skopiowałem go z odpowiedzi na pytanie, ale z jakiegoś powodu nie działa. Jakieś sugestie?

Im przy Swift na drodze

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 
} 
+1

Możesz opublikować całą funkcję cellForRowAtIndexPath? – Dash

Odpowiedz

32

Oto kilka możliwych przyczyn problemu:

prototyp
  1. komórka musi zawierać UIImageView. Jeśli używasz storyboardu, wybierz prototyp komórki i upewnij się, że jego styl jest ustawiony na "Basic" w inspektorze atrybutów (prawy panel).

  2. Identyfikator komórki nie pasuje do identyfikatora wpisanego w komórce prototypowej w scenorysie. Upewnij się, że "komórka" jest wpisana dla "Identyfikatora" również w inspektorze atrybutów.

  3. Obraz nie ładuje się prawidłowo z pliku. Aby to sprawdzić, należy dodać następujący wiersz po uruchomieniu swój obraz:

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

Po sprawdzeniu, że wszystko jest ustawione w serii ujęć, spróbuj uruchomić go za pomocą tego kodu:

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 
    } 
+2

Ah Dzięki :), sugestia 1 była rozwiązaniem dla mojej odpowiedzi, Swift zajmie trochę czasu na uzyskanie dostępu do – Johno2110

+0

pracował świetnie dla mnie! – Ronaldoh1

+0

Co powiesz na rozmiar komórki, aby dopasować automatyczne ograniczenie obrazu? – rambossa

2

Swift 3

// używamy tego, jeśli twoje obrazy znajdują się na serwerze.

// otrzymujemy obrazy z adresu URL.

// możesz ustawić obraz ze swojego Xcode.

// to robić za pomocą przypisać znacznik do ImageView

  1. URL obrazy są w tablicy name = miniatur tj self.thumbnail [indexPath.row]
  2. na UITableViewCell umieścić ImageView na komórkę
  3. wybierz UIimageView przypisz mu znacznik z storyboardu.

    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