我获取的数据只显示一个数据而不是显示两个(Firebase,Swift)

Posted

技术标签:

【中文标题】我获取的数据只显示一个数据而不是显示两个(Firebase,Swift)【英文标题】:My fetched data only shows one data instead of showing two (Firebase, Swift) 【发布时间】:2019-05-21 16:12:23 【问题描述】:

我正在从 firebase 获取一些详细信息并在 UITableView 上显示它们。 每行/单元格应该显示 2 个标签,但是,它只显示一个。

我的主视图控制器:

import UIKit
import Firebase

class NewFoodCaloriesViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

    var addFood: DatabaseReference!

    @IBOutlet weak var txtNewFoodInsert: UITextField!
    @IBOutlet weak var txtNewFoodCaloriesInsert: UITextField!
    @IBOutlet weak var lblSuccess: UILabel!


    @IBOutlet weak var tableFoodList: UITableView!
    var foodList = [FoodModel]()

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


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ViewControllerTableViewCell

        let food: FoodModel

        food = foodList[indexPath.row]
        cell.lblFoodType.text = food.foodname
        cell.lblFoodCalories.text = food.foodcalories
        //print("II")
        return cell

    

我的 ViewControllerTableViewCell:

class ViewControllerTableViewCell: UITableViewCell 


    @IBOutlet weak var lblFoodType: UILabel!
    @IBOutlet weak var lblFoodCalories: UILabel!

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

    override func setSelected(_ selected: Bool, animated: Bool) 
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    


我的 FoodModel.swift


    var foodid: String?
    var foodname: String?
    var foodcalories: String?
    var userid: String?

    init(foodid: String?, foodname: String?, foodcalories: String?, userid: String?)
    
        self.foodid = foodid
        self.foodname = foodname
        self.foodcalories=foodcalories
        self.userid = userid
    

需要在表格视图中显示 Foodname 和 FoodCalories 的预期结果,但现在它只在表格视图中显示 FoodName

【问题讨论】:

foodList 数组中有多少个元素? 可能有很多问题;我假设您的表格显示的是食物名称而不是食物卡路里?还是只显示一行?问题描述有点模糊。您还需要包含 Firebase 结构的 sn-p,以便我们知道您的数据是什么样的,并且包含您的 Firebase 代码非常重要,因为这可能是问题所在。要获取您的 Firebase 结构,请使用 Firebase 控制台->导出 JSON,然后复制并粘贴您的结构的 sn-p。 【参考方案1】:

我的猜测是,很可能您将 2 个标签垂直对齐并且底部行被裁剪,因为行高小于两个标签的组合高度。

您可以正确添加约束并使用TableView自动维度或实现heightForRow委托方法如下。

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

【讨论】:

以上是关于我获取的数据只显示一个数据而不是显示两个(Firebase,Swift)的主要内容,如果未能解决你的问题,请参考以下文章

CircularProgressIndicator 只显示一次

只显示一个div.panel,而不是两个

Jsp 只显示我的 mySQL 表的标题而不是它们的内容

如何在折线图js的多个数据集中只显示一行

C# 从串口读取数据 - 如何只获取新的/当前数据?

显示名称而不是另一个表中的ID