我有一个UITableViewController,它有两个独特的自定义UITableViewCells。唯一单元格是HeaderCell
(第0行),其中包含名为orderPriceLabel
的UILabel中的整个订单的价格,以及ItemCell
的{{1}}(第1行)它存储每个项目在其索引路径上的价格以及itemPriceLabel
,它存储每个项目已添加到订单的次数。
每个countLabel
都有一个ItemCell
UIButton和一个+
UIButton。每次点按-
按钮时,相应索引路径的+
都会增加,如果点按countLabel
按钮,则-
会减少。这部分是我喜欢的方式。我正在努力解决的问题是更新第0行countLabel
中的orderPriceLabel
。当点按HeaderCell
按钮时,+
应增加存储的值在orderPriceLabel
' ItemCell
中,当点击itemPriceLabel
按钮时,应该会发生相反的情况。
ItemCell代码:
-
HeaderCell代码:
class ItemCell: UITableViewCell {
// MARK: Properties
@IBOutlet weak var itemOrderCountLabel: UILabel!
@IBOutlet weak var itemPriceLabel: UILabel!
var count: Int = 0
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
@IBAction func decrementButton(sender: AnyObject) {
count -= 1
itemOrderCountLabel.text = "\(count)"
//How to decrease orderPriceLabel
}
@IBAction func incrementButton(sender: AnyObject) {
count += 1
itemOrderCountLabel.text = "\(count)"
//How to increase orderPriceLabel
}
TableViewController代码:
class FoodMenuTableViewCell: UITableViewCell {
// MARK: Properties
@IBOutlet weak var orderPriceLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
我非常喜欢快速编程和编程。
感谢您的帮助!!!
答案 0 :(得分:0)
我建议将您的总价存储在类变量(属性)中。在TableViewController类中添加viewDidLoad
上面的这行代码:
var totalPrice = 0
这会创建一个可以在整个班级中轻松访问的变量。当您点击ItemCell
中的+或 - 按钮时,请将所需的值添加到totalPrice
,这样itemPriceValue
就是您要添加的内容:
self.totalPrice += itemPriceValue
现在,您可以使orderPriceLabel
等于totalPrice
的值。另外,要确保UITableView更新,请将此方法添加到TableViewController代码的底部:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.reloadData()
}