UITableView不显示自定义UITableViewCell

时间:2020-09-22 22:01:22

标签: swift uitableview google-cloud-firestore

您好,我对此很陌生,我正在尝试在自定义的UITableViewCell上显示firebase子集合的数据。我在此单元格中创建了四个具有约束的自定义UILabel,其中两个标签将显示Firestore中特定文档中包含的数据。为此,我正在使用三个文件,其中两个用于查看控制器。

第一个是名为File.Swift的文件(出于隐私目的,我已更改了变量名,文件/视图控制器名和类)。其中包含的变量将保存Firebase中的数据:

File.swift 导入基金会

  class array1 {

var item1: String!
var item2: String!
var item3: String!

init(item1: String, item2: String, item3: String ) {
    self.item1 = item1
    self.item2 = item2
    self.item3 = item3
}


}

第二个视图控制器文件链接到定制的UITableViewCell,并在UITableViewCell内部连接了标签:

File2.swift

 import UIKit

class tableViewCell: UITableViewCell {

@IBOutlet weak var firstLabel: UILabel!

@IBOutlet weak var secondLabel: UILabel!

@IBOutlet weak var thirdLabel: UILabel!

@IBOutlet weak var fourthLabel: UILabel!


override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

func configureCell(parameter1: array1) {
    
    secondLabel.text = parameter1.item1
    fourthLabel.text = parameter1.item2
    
}

第三个视图Controller File具有链接到它的UITableView以及与我的问题无关的其他标签。在这里:

File3.swift

  import UIKit
  import Firebase
  import FirebaseFirestoreSwift
  import FirebaseAuth

  class myClass: UIViewController, UITableViewDataSource, UITableViewDelegate {







 var myArray = [array1]()
  
var myArrayDataCollection: CollectionReference!

lazy var username = userNameLabel.text!

@IBOutlet private weak var tableView1: UITableView!

@IBOutlet weak var userNameLabel: UILabel!

var db = Firestore.firestore()


  var userName3 = ""

   override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView1.delegate = self
    self.tableView1.dataSource = self
    self.tableView1.estimatedRowHeight = 80
    self.tableView1.rowHeight = UITableView.automaticDimension
    self.tableView1.reloadData()
    
    
    
    
    
    myArrayDataCollection = db.collection("users").document("\(username)").collection("array_data")
    
    userNameLabel.text = userName3
    
  

}


  override func viewWillAppear(_ animated: Bool) {
        myArrayDataCollection.getDocuments { (snapshot, error) in
            if let err = error {
                print("Error fetching docs: \(err)")
            } else {
                guard let snap = snapshot else { return }
                for document in snap.documents {
                    let data = document.data()
                    let firstItem = data["first_item_data"] as? String ?? ""
                    let secondItem = data["second_item_data"] as? String ?? ""
                    let documentId = document.documentID
                    
                    let newArray = array1(item1: firstItem, item2: secondItem, documentId: documentId)
                    self.myArray.append(newArray)
                }
                self.tableView1.reloadData()
            }
        
    }
  }


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

}

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if let cell = tableView1.dequeueReusableCell(withIdentifier: "QueueCell", for: indexPath) as? Retrieval_Cell {
            
            cell.configureCell(paramater1: myArray[indexPath.row])
            
            return cell
            
        } else {
            return UITableViewCell()
        }
}
                  


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
















}

我想知道这是否与我的功能(func configureCell)有关。我的单元格的标识符是正确的,因此如果有人可以帮助我,我将不胜感激。当我在模拟器上运行此命令时,我得到的都是空表单元格,客户UITableViewCell内的标签不会出现。

0 个答案:

没有答案
相关问题