图像未显示在 firebase 的表格单元格中
Posted
技术标签:
【中文标题】图像未显示在 firebase 的表格单元格中【英文标题】:Image not display in table cells from firebase 【发布时间】:2017-02-08 12:02:34 【问题描述】:我有一个表格视图,
我有一个使用 Firebase 获取一些数据的数据库:标题、标题、图片。
标题和说明显示完美,并且是从 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 - 但我仍然没有显示任何图像:(
【问题讨论】:
【参考方案1】:您没有看到任何图像,因为您从未设置它们。您需要在cellForRowAt
内拨打configureCell
【讨论】:
嗯,谢谢 Russel,你知道如何实现吗?谢谢:) 只需在cellForRowAt
内拨打电话 - 但您的 Cell 课程有点奇怪。您不应该从单元格内重新加载tableView
,并且您根本不需要对tableView
的引用。此外,您已经为正在使用的某些控件创建了插座,但随后您忽略了插座并使用标记值访问控件。
好的,我会尽力的,我从ios dev开始,所以我不能够做到这一点ehhehe以上是关于图像未显示在 firebase 的表格单元格中的主要内容,如果未能解决你的问题,请参考以下文章