2017-02-08 50 views
0

顯示在表格單元格我有一個表視圖,圖像不從火力

我有個DB使用火力地堡取一些數據:標題,說明圖像。

標題和標題顯示完美,正在從Firebase中獲取。但是,沒有圖像出現。 ..

任何幫助將是驚人的,請:) :)

我的視圖控制器的代碼如下:

// 
// Feed.swift 
// MobileAppDemo 
// 
// Created by Mikko Hilpinen on 31.10.2016. 
// Copyright © 2016 Mikkomario. All rights reserved. 
// 

import UIKit 
import FirebaseAuth 
import FirebaseDatabase 
import FirebaseStorage 
import SwiftKeychainWrapper 
import SwiftyJSON 

var posts = [Post]() 
var selectedIndexPath: Int = 0 

class FeedVC: UIViewController, UITableViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UITableViewDelegate { 

@IBOutlet weak var feedTableView: UITableView! 

private var readPosts: ObserveTask? 

@IBOutlet weak var imageView: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    feedTableView.dataSource = self 
    feedTableView.delegate = self 

    readPosts = Post.observeList(from: Post.parentReference.queryOrdered(byChild: Post.PROPERTY_CREATED)) { 
     observedPosts in 

     posts = observedPosts.reversed() 
     self.feedTableView.reloadData() 
    } 
} 

func numberOfSections(in tableView: UITableView) -> Int { 
    return 1 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return posts.count 
} 

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = self.feedTableView.dequeueReusableCell(withIdentifier: "MessageCell")! as UITableViewCell 

    let messageImageView = cell.viewWithTag(1) as! UIImageView 
    let titleLabel = cell.viewWithTag(2) as! UILabel 
    let captionText = cell.viewWithTag(3) as! UILabel 


    titleLabel.text = posts[indexPath.row].title 
    titleLabel.numberOfLines = 0 

    captionText.text = posts[indexPath.row].caption 
    captionText.numberOfLines = 0 


    return cell 

} 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    selectedIndexPath = indexPath.row 
    self.performSegue(withIdentifier: "push", sender: self) 
    self.feedTableView.reloadData() 
} 
} 

要調用我有後續圖像中我cell.swift

// 
// MessageCell.swift 
// MobileAppDemo 
// 
// Created by Mikko Hilpinen on 31.10.2016. 
// Copyright © 2016 Mikkomario. All rights reserved. 
// 

import UIKit 
import FirebaseStorage 


class MessageCell: UITableViewCell 
{ 
// @IBOutlet weak var profileImageView: UIImageView! 
// @IBOutlet weak var likeButton: UIButton! 

@IBOutlet weak var messageImageView: UIImageView! 
@IBOutlet weak var messageTextView: UITextView! 
@IBOutlet weak var titleTextView: UITextView! 
@IBOutlet weak var linkbutton: UIButton! 

// @IBOutlet weak var likeLabel: UILabel! 

private var post: Post! 

func configureCell(tableView: UITableView, post: Post) 
{ 
    self.post = post 

    // Basic info 
    //  self.messageImageView.image = postPic 

    messageImageView.image = post.postPic 
    titleTextView.text = post.title 
    messageTextView.text = post.caption 


    // Post user 
    User.get(id: post.creatorId) 
    { 
     postCreator in 




    // Image 
    Storage.getImage(with: post.imageUrl) 
    { 
     postPic in 

     self.messageImageView.image = postPic 
     // Row height changes so table needs to be reset 
     tableView.beginUpdates() 
     tableView.endUpdates() 
    } 
} 

-

我已經更新了我feed.swift有以下幾點:

messageImageView.sd_setImage(with: URL(string:"\(posts[indexPath.row].imageUrl)")) 

使用SDWebImage - 但IM仍然沒有任何圖像顯示是:(

回答

0

你沒有看到任何圖像,因爲你從來沒有設置。您需要撥打configureCell以內cellForRowAt

+0

嗯,謝謝羅素,你知道這怎麼能實現? 謝謝:) – tibewww

+0

只是在'cellForRowAt'內調用 - 但是你的Cell類有點奇怪。你不應該在單元格內重新加載'tableView',你根本不需要引用'tableView'。此外,您已爲某些正在使用的控件創建了插座,但您忽略了插座並使用標籤值訪問控件。 – Russell

+0

好吧,我盡我所能,我開始與ios開發,所以我不是sur能夠做到這個ehehe – tibewww