2017-06-08 4 views
0
hinzu

Ich bin verwirrt darüber, wie ich die DownloadURL, die ein Link ist, nehmen und es in ein Bild verwandeln und es in meiner Tableview-Zelle hinzufügen kann? Ich habe eine Bildansicht in meinem Storyboard und weiß auch nicht, wie ich es mit der Tableview-Zelle verbinden soll. Vielen Dank!Wie füge ich ein Bild in einer TableView von URL

override func viewDidLoad() { super.viewDidLoad() 

    let ref = FIRDatabase.database().reference().child("Posts") 

    ref.observeSingleEvent(of: .value, with: { snapshot in 

     print(snapshot.childrenCount) 

     for rest in snapshot.children.allObjects as! [FIRDataSnapshot] { 

      guard let value = rest.value as? Dictionary<String,Any> else { continue } 

      guard let downloadURL = value["DownloadURL"] as? String else { continue } 

      let post = postStruct(title: title, date: date, author: author, article: article, downloadURL: downloadURL) 

      self.posts.append(post) 

     } 

     self.posts = self.posts.reversed(); self.tableView.reloadData() 

    }) 

} 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    return posts.count 
} 

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") 

    let label1 = cell?.viewWithTag(1) as! UILabel 
    label1.text = posts[indexPath.row].title 
    return cell! 
} 
+0

eine Klasse für yout Zelle, definieren und eine UIImageView als Auslass fügen Sie dann in der cellForRowAtIndexPath ein Bild loader verwenden wie Alamofire oder SDWebImage Ihr Bild –

+0

zu laden, wenn meine Antwort geholfen, sie markieren Bitte (Dohle drücken), um andere wissen zu lassen, dass es korrekt ist. –

Antwort

2

Google diese cocoapod: SDWebImage

Verwendung dieses, es ist unglaublich

Swift:

import SDWebImage 

imageView.sd_setImage(with: URL(string: "url"), placeholderImage: UIImage(named: "placeholder.png")) 

In Bezug auf Ihre zweite Frage Verbindung Ihre Bildansicht, müssen Sie erstellen eine benutzerdefinierte Zelle

+0

hilf mir wieder https://stackoverflow.com/questions/44530922/sdwebimage-doesnt-work – Riccardo

0

Ich glaube, Sie falsch tun Bild zum Download von firebase

  1. Um Bild-URL von firebase storage herunterladen. Sie benötigen einen Imageview innerhalb Tablecell

`

let imagesRef = FIRStorage.storage().reference() 
let imageRef = self.imagesRef.child("imageName.jpg") 
imageRef.downloadURL { url, error in 
    if let error = error { 
    } else { 
     DispatchQueue.main.async { 
      cell.imageView.kf.setImage(with: url) 
     } 
    } 
} 

`

  1. Ihr Code Problem definieren, IDK, warum Sie firebase database Versuchen Sie es mit Bild zum Download, weil du nicht kannst.
+0

Er verwendet die Firebase-Datenbank, um die URL des Bildes herunterzuladen. Kein Bild. –

1

1) Sie müssen benutzerdefinierte Zellklasse mit Bild wie folgt erstellen:

class MyCustomCell: UITableViewCell { 
    //...some vars? 
    @IBOutlet myImageView: UIImageView! 
    //...some vars? 
} 

2) Stellen Sie es für Sie ein table view. Sie können eine Menge Tutorials für Punkte und in google, SO etc. Beispiel finden: Add custom cells for tableView

3) Installieren KingFisher für Bilder-Caching. Kingfisher. Es lässt Ihre Tabellenansicht reibungslos scrollen.(Hinweis: Sie können eine beliebige analoge wie SDWebImage verwenden)

zu installieren:

1) pod 'Kingfisher', '~> 3.0' in Ihrer pod Datei

2) pod install in Terminal

3) import Kingfisher in Ihrem swift -codedatei

4) Verwenden Sie es in Ihrem table view:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "myCustomCell", for: indexPath) as! MyCustomCell 
    let row = indexPath.row 

    // ...other vars? 

    let imageURL = URL(string: self.posts[row].downloadURL) 
    cell.myImageView.kf.setImage(with: imageURL) // Using kingfisher for caching and viewing. 
    // next time, when you will use image with this URL, it will be taken from cache. 

    // ...other vars? 

    return cell 
} 

Hoffe, es hilft

+0

kannst du mir wieder helfen? https://stackoverflow.com/questions/44530922/sdwebimage-doesnt-work – Riccardo

+0

@Riccardo können Sie Mr. Kingsley um Hilfe bitten :) –

Verwandte Themen