【发布时间】:2017-12-09 11:25:40
【问题描述】:
func numberOfSections(in tableView: UITableView) -> Int {
if carts.count > 0 {
self.tableView.backgroundView = nil
self.tableView.separatorStyle = .singleLine
return 1
}
let rect = CGRect(x: 0,
y: 0,
width: self.tableView.bounds.size.width,
height: self.tableView.bounds.size.height)
let noDataLabel: UILabel = UILabel(frame: rect)
noDataLabel.text = "nothing, the table is empty"
noDataLabel.textColor = UIColor.white
noDataLabel.textAlignment = NSTextAlignment.center
self.tableView.backgroundView = noDataLabel
self.tableView.separatorStyle = .none
self.total.isHidden = true
self.proceedbtn.isHidden = true
self.totalLab.isHidden = true
return 1
}
当 tableView 为空时,上面的代码将隐藏对象。但是,当我在其中添加项目(应该是购物车)时,total proceedbtn 和 totalLab 仍然隐藏!!
有没有办法重新加载表格并检查它是否为空?
注意:
我的单元格是可滑动的,我可以通过滑动删除单元格。
func deleteMail(_ path:IndexPath) {
guard carts.count > path.row else {
print("Index out of range")
return
}
let entry = carts[path.row]
deletItem(id: entry.meal_id)// call api to delete items
carts.remove(at: (path as NSIndexPath).row);
tableView.deleteRows(at: [path], with: .left);
print("delete")
}
更新
override func viewDidLoad() {
super.viewDidLoad()
if carts.isEmpty == true {
proceedbtn.isHidden = true
} else {
if carts.isEmpty == false {
if proceedbtn.isHidden == true {
proceedbtn.isHidden = false
}
}
}
获取数据:
func getData () {
Alamofire.request(url!, method: .post, parameters: param,encoding: URLEncoding.default, headers: headers).responseJSON { response in
if let value: AnyObject = response.result.value as AnyObject? {
// get data
self.price = subJson["price"].stringValue
self.qty = subJson["qty"].stringValue
let id = subJson["id"].stringValue
self.id = id
self.name = subJson["meal"]["name"].stringValue
let info = Cart(meal_id: self.id, qty: self.qty, meal_name: self.name, price: self.price)
self.carts.append(info)
}
}
self.tableView.reloadData()
}
}
【问题讨论】:
-
你能告诉我们你用来添加项目的代码吗?
-
请检查更新的问题
标签: ios swift uitableview swift3 uibutton