嗨,我搜索了堆栈溢出并看到 If no Table View results, display "No Results" on screen 这很有用,但不完全是我想要的。 我的问题是,当我按照这些步骤操作时,它可以正常工作。但如果我的表格 View 最终确实有数据,它会在填充我的数据之前闪烁我的“空表格 View 标签”一两秒。在我看来,这看起来很糟糕。
我有一个通过我的 tableview 上的 socket 连接的标签,名为emptyTableViewlbl。这是我被调用的代码。提前感谢任何帮助。谢谢
extension FeedViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if posts.isEmpty {
emptyTableViewLbl.isHidden = false
emptyTableViewLbl.text = "Empty tableview label"
return 0
} else {
emptyTableViewLbl.isHidden = true
}
return posts.count
}
并尝试过
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
loadPosts()
if posts.isEmpty {
emptyTableViewLbl.isHidden = false
emptyTableViewLbl.text = "Empty"
} else {
emptyTableViewLbl.isHidden = true
}
}
最佳答案
您可以使用didSet
来执行此操作
假设你的数组是
var posts:[Post] {
didSet {
if posts.isEmpty {
emptyTableViewLbl.isHidden = false
} else {
emptyTableViewLbl.isHidden = true
tableview.reloadData()
}
tableview.isHidden = !emptyTableViewLbl.isHidden
}
}
关于ios - 如果我的数组中有数据,空 TableView 标签会闪烁一秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50595417/