将所有子值检索到表格视图单元格中的标签 [英] Retrieve all child value to a label in table view cell

查看:129
本文介绍了将所有子值检索到表格视图单元格中的标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想检索蛋糕的所有子值的蛋糕速率标签。

我试图检索,但我不能安排正确的代码,也是我的入门级。 p>

Firebase结构



ViewController
$ b



TestTableViewCell

  import UIKit 
class TestTableViewCell:UITableViewCell {

@IBOutlet弱变量cakeImage:UIImageView!
@IBOutlet weak var cakeEngLabs:UILabel!
@IBOutlet weak var cakeUrLabs:UILabel!
@IBOutlet weak var cakeRateLabs:UILabel!




$ TestBableViewController **

 导入UIKit 
导入Firebase

class TestTableViewController:UITableViewController {

@IBOutlet var cakeTableView: UITableView的!

var ref = FIRDatabase.database()。reference()


结构Cake {
let cakeEngNames:String
let cakeUrNames:字符串
让cakeImages:UIImage
var cakeRates:String



var cakes = [CakeEngNames:杏仁蛋糕,cakeUrNames: 蛋糕图片:UIImage(命名为Maru)!,cakeRates:),

蛋糕(cakeEngNames: (名字:香料)!,cakeRates:),

蛋糕(cakeEngNames:果冻蛋糕,cakeUrNames:jeli ka蛋糕,cakeImages:UIImage(名字:香料) !,cakeRates:),

蛋糕(cakeEngNames:果冻蛋糕,cakeUrNames:jeli ka蛋糕,cakeImages:UIImage(名字:spices)!,cakeRates:) ]



$ b覆盖func viewDidLoad(){
super.viewDidLoad()

让AlmondSnap = ref.child (Hyderabad)。child(Bakery)。child(Cake)
AlmondSnap.observe(.value:{(snapshot)in
让almondRate = snapshot.value as!字符串
self.cakes []。cakeRates = almondRate

print(\(almondRate))
self.tableView.reloadData()
})
}

覆盖func tableView(_ tableView:UITableView,numberOfRowsInSection section:Int) - > Int {
return self.cakes.count
}

覆盖func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - > UITableViewCell {
let cell = self.tableView.dequeueReusableCell(withIdentifier:TestTableViewCell,for:indexPath)as! TestTableViewCell

cell.cakeImage.image = self.cakes [indexPath.row] .cakeImages
cell.cakeEngLabs.text = self.cakes [indexPath.row] .cakeEngNames
cell .cakeUrLabs.text = self.cakes [indexPath.row] .cakeUrNames
cell.cakeRateLabs.text = self.cakes [indexPath.row] .cakeRates
return cell
}
因此,根据评论,正如你所说,你是一个人,只需要把它和它的速度填入表中即可。除此之外,这是静态的(如果不是,请参考@dstepan提供的结构和答案)。所以这里是你如何填写你的数据在tableview中。



<$ (){
super.viewDidLoad()

let $ {code $ var cakes = [Cake]()

let func viewDidLoad almondSnap = ref.child(Hyderabad)。child(Bakery)。child(Cake)
almondSnap.observe(.value):{(snapshot)in
if snapshot.hasChildren (){
在snapshot.children中的快照{
// snap.key生成蛋糕的名称
// snap.value生成蛋糕的速率

如果让node = snap as?FIRDataSnapshot,让rate = node.value为?Int {
self.cakes.append(cakeEngNames:node.key,
cakeUrNames:badam cake,
cakeImages:UIImage(命名为Maru)!,
cakeRates:String(rate)))
}
}
self.cakeTableView.reloadData()
}
})
}


I want to retrieve all the child values of "Cake" to cake Rate Label.
I am trying to retrieve but i can not arrange properly code and also i am entry level to ios.

Firebase Structure

ViewController

TestTableViewCell

import UIKit
class TestTableViewCell: UITableViewCell {

@IBOutlet weak var cakeImage: UIImageView!
@IBOutlet weak var cakeEngLabs: UILabel!
@IBOutlet weak var cakeUrLabs: UILabel!
@IBOutlet weak var cakeRateLabs: UILabel!

}

*TestTableViewController**

import UIKit
import Firebase

class TestTableViewController: UITableViewController {

@IBOutlet var cakeTableView: UITableView!

var ref = FIRDatabase.database().reference()


struct Cake {
  let cakeEngNames: String
  let cakeUrNames: String
  let cakeImages: UIImage
  var cakeRates: String
}


var cakes = [Cake(cakeEngNames: "almond Cake", cakeUrNames: "badam cake",     cakeImages: UIImage(named:"Maru")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: ""),

         Cake(cakeEngNames: "Jelly Cake", cakeUrNames: "jeli ka cake", cakeImages: UIImage(named:"spices")!, cakeRates: "")]




override func viewDidLoad() {
super.viewDidLoad()

let AlmondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")
AlmondSnap.observe( .value, with: { (snapshot) in
    let almondRate = snapshot.value as! String
        self.cakes[].cakeRates = almondRate

        print("\(almondRate)")
        self.tableView.reloadData()
})
}

 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.cakes.count
}

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

cell.cakeImage.image = self.cakes[indexPath.row].cakeImages
cell.cakeEngLabs.text = self.cakes[indexPath.row].cakeEngNames
cell.cakeUrLabs.text = self.cakes[indexPath.row].cakeUrNames
cell.cakeRateLabs.text = self.cakes[indexPath.row].cakeRates
return cell
}
}

解决方案

So based on comments, as you said that you only need cakename and its rate to fill in the table. Other then that is static (if not than please go for a structure and answer suggested by @dstepan) .. So here is how you can fill up your data in tableview.

   var cakes = [Cake]()

    override func viewDidLoad() {
        super.viewDidLoad()

        let almondSnap = ref.child("Hyderabad").child("Bakery").child("Cake")
        almondSnap.observe( .value, with: { (snapshot) in
            if snapshot.hasChildren(){
                for snap in snapshot.children {
                   // snap.key produces name of cake
                   // snap.value produces rate of cake

                    if let node = snap as? FIRDataSnapshot, let rate = node.value as? Int {
                        self.cakes.append(Cake(cakeEngNames: node.key,
                                          cakeUrNames: "badam cake",
                                          cakeImages: UIImage(named:"Maru")!,
                                          cakeRates: String(rate)))
                    }
                }
                self.cakeTableView.reloadData()
            }
        })
    } 

这篇关于将所有子值检索到表格视图单元格中的标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆