У меня есть вид таблицы,изображения не отображается в ячейках таблицы из firebase
У меня есть БД с помощью 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 - но им еще не имея проецируемых изображений дисплей :(
Хмм, спасибо Рассел, знаете ли вы, как этого достичь? Спасибо :) – tibewww
просто сделайте вызов в 'cellForRowAt' - но ваш класс Cell немного странный. Вы не должны перезагружать 'tableView' изнутри ячейки, и вам вообще не нужна ссылка на' tableView'. Кроме того, вы создали выходы для некоторых элементов управления, которые вы используете, но затем игнорируете выходы и получаете доступ к элементам управления, используя значение тега. – Russell
Хорошо, я стараюсь изо всех сил, я начинаю с ios dev, поэтому я не знаю, чтобы сделать это ehhehe – tibewww