【问题标题】:My fetched data only shows one data instead of showing two (Firebase, Swift)我获取的数据只显示一个数据而不是显示两个(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。

标签: ios swift firebase tableview fetch


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-01-21
    • 2019-08-02
    • 2021-03-14
    • 2017-07-30
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多