Из полученных данных отображаются только одни данные вместо двух (Firebase, Swift) - PullRequest
0 голосов
/ 21 мая 2019

Я получаю некоторые детали из базы данных и показываю их на 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 в табличном представлении

1 Ответ

0 голосов
/ 21 мая 2019

Полагаю, вы, скорее всего, располагаете 2 метки вертикально выровненными, а нижний ряд обрезается, потому что высота строки меньше, чем общая высота обеих меток.

Можно правильно добавить ограничения и использовать автоматическое измерение TableView или реализовать метод делегирования heightForRow следующим образом.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...